Subject: Re: gcc4 status
To: None <tech-toolchain@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-toolchain
Date: 05/25/2006 11:05:21
>>>> 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*.
> I think left-to-right evaluation is guaranteed for the comma
> operator,

Yes.

> and arguments (bus_space_read_1() in this case) should be evaluated
> before function (wbflush() in this case) is executed,

This is true of a function.  It's not clear how true it is of a
`function' which is documented as "may be implemented as a macro".
That's why I was saying that it needs to have its interface contract
spelled out more precisely.

> so mouse's concern may be valid.  (it isn't a side effect problem)

It's a side effect problem in that if the arguments have no side
effects, it doesn't matter how many times, or when, they get evaluated.

> But we don't have to continue a hairsplitting discussion if my second
> patch works... ;-)

Very true.

/~\ 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