1 /* { dg-do compile } */ 2 /* { dg-options "-O1 -fdump-tree-dom2" } */ 3 4 5 union tree_node; 6 typedef union tree_node *tree; 7 extern const char tree_code_type[]; 8 struct tree_common 9 { 10 int code; 11 tree type; 12 }; 13 struct tree_exp 14 { 15 tree operands[1]; 16 }; 17 union tree_node 18 { 19 struct tree_common common; 20 struct tree_exp exp; 21 }; 22 long get_alias_set(t)23get_alias_set (t) 24 tree t; 25 { 26 if (tree_code_type[t->common.code] != 't' && t->common.type == 0) 27 return 0; 28 if (tree_code_type[t->common.code] != 't') 29 { 30 while (t->exp.operands[0]) 31 t = t->exp.operands[0]; 32 } 33 } 34 35 /* There should be exactly three IF conditionals if we thread jumps 36 properly. */ 37 /* { dg-final { scan-tree-dump-times "if " 3 "dom2"} } */ 38 39