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