------- Comment #4 from jakub at gcc dot gnu dot org 2008-12-18 08:13 ------- struct S { struct S *n, *p; } *s;
void bar (void *); int foo (int x) { struct S p = { &p, &p }; int i; for (i = 0; i < x; i++) bar (s); return p.n == &p; } I guess the reason is that unlike tcc_binary the result of tcc_comparison is bool, not necessarily equal to the type of its operands. So it can't be handled exactly like tcc_binary. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38564