------- Comment #6 from pinskia at gcc dot gnu dot org 2008-05-28 07:31 ------- (In reply to comment #5) > BTW, the i = i trick
it only works in the initializer and not as a statement after the fact. That is: #include <assert.h> int foo (int x) { int y = y; assert (x == 0 || x == 1); if (x == 0) y = 1; else if (x == 1) y = 2; return y; } Will work, also with the jump threading, GCC should be able to figure out that y is always inlined (except when -DNDEBUG is used). -- Pinski -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36296