Subject: Re: gcc4 status
To: None <Wolfgang@Solfrank.net>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: tech-toolchain
Date: 05/25/2006 20:29:04
Wolfgang@Solfrank.net wrote:

> >>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*.  (This usually won't
> >>matter, but if one of the arguments is, for example, a function call
> >>that does a significant amount of work, it may.)

> > Hmm. Someone may have bus_space_barrier(t,h,bus_space_read_1(t,h,o),l,f)?
> 
> 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.

I think left-to-right evaluation is guaranteed for the comma
operator, and arguments (bus_space_read_1() in this case) should
be evaluated before function (wbflush() in this case) is executed,
so mouse's concern may be valid. (it isn't a side effect problem)

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