/* { dg-do compile } */ /* { dg-options "-O2 -Wuninitialized" } */ typedef union tree_node *tree; struct tree_common { tree chain; }; struct tree_decl { struct tree_common common; tree name; }; union tree_node { struct tree_common common; struct tree_decl decl; }; int pedantic; void finish_struct (tree t, tree fieldlist, tree attributes) { union tree_node * x; if (pedantic) { x = fieldlist; if (x->decl.name == 0) { while (x) x = x->common.chain; foo (fieldlist); } } x = fieldlist; if (x) { do { x = x->common.chain; } while (x != 0); } bar1 (&fieldlist); }