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.