charfi asma <charfiasma@xxxxxxxx> writes: > when generating gimple using gcc 4.4.2 from > > int a =5; > int b=10; > if (a++ +b != 0) > return 0; > else > return 1; > > we obtain this code > > int a; > int b; > a = 5; > b = 10; > D.1715 = a + b; > retval.0 = D.1715 != 0; > a = a + 1; > if (retval.0 != 0) goto <D.1716>; else goto <D.1717>; > .... > > why retval.0 is added ? why we do not produce if (D.1715 !=0) directly ? For a more precise answer it would help if you give a complete test case and tell us which dump you are looking at. In general GIMPLE is generated without optimizations. The expectation is that future optimizations will clean up any issues. In other words, nobody really pays attentions to details like whether another variable is introduced early in the process. Ian