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