This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: evaluation order of expressions in gcc
laura_rand@women-at-work.org writes:
> > laura_rand@women-at-work.org writes:
> >
> > > hi, all
> > >
> > > i could not find an answer to this question on the net so i'm posting it
> > > here.
> > >
> > > as far as i know, the Ansi C standard does not specify the order of
> > > evaluation of expression arguments. so if i wrote:
> > >
> > > x = f() + g()
> > >
> > > it would be up to the compiler whether f() or g() would be called
> > > first.
> > [snip]
> >
> > There is no order you can depend on. It can vary by platform, and
> > according to optimization flags.
>
> that was my question. which optimization flags does it depend on, and how?
> platform is intel x86.
I don't know. I can only refer to Ian's answer; experiment, and look
at the generated assembly. The catch is that the order may not be
predictable on the optimization flags.