------- Comment #11 from rguenth at gcc dot gnu dot org 2009-06-02 15:46 ------- Even simpler testcase:
struct X { int flag; int pos; }; int foo(struct X *a, struct X *b) { while (1) { if (a->flag) break; ({ struct X *tmp = a; a = b; b = tmp; }); } return a->pos + b->pos; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40321