Subject: Re: gcc4 status
To: None <tech-toolchain@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-toolchain
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	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B