Hi,
On Mon, 10 Oct 2011, Kai Tietz wrote:
> extern int foo (void); /* foo modifies gbl1 */
> int gbl1 = 0;
>
> int foo (int ns1)
> {
> if (ns1 && foo () && gbl1)
> return 1;
> return 0;
> }
>
> so chain of trees has to look like this:
> (ANDIF (ns1 (ANDIF foo () gbl1))
Okay, indeed. I was wrong when I claimed that only the RHS needs to be
side-effect-free for ANDIF->AND to be valid. It's true when the RHS can't
depend on the LHS, but I only thought about the fact that the side-effect
must occur, not that it possibly influences RHS.
Ciao,
Michael.