------- 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

Reply via email to