Subject: Re: gcc4 status
To: None <tech-toolchain@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
Date: 05/24/2006 21:51:10
>>> I don't know about the rest of it, but it seems to me that this has
>>> order-of-evaluation problems: it evaluates its arguments *after*
>>> performing the write barrier, not *before*.
> Hmm, I'm not sure what you are trying to achieve here.
> All bus_space* functions are explicitly allowed (by the manual) to be
> implemented as macros. Which in my world means that the user is not
> allowed to rely on arguments with side effects to be evaluated. Or
> for that matter, to be evaluated only once.
The documentation really needs to explicitly spell out the interface
contract - in particular, any ways in which a macro implementation is
permitted to deviate from function-like semantics. It's possible all
the arguments-cast-to-void can simply be deleted if there is no promise
that the arguments are evaluated at all.
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML email@example.com
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B