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.

Reply via email to