1/* { dg-do compile } */ 2/* { dg-options "-O2" } */ 3 4typedef union tree_node *tree; 5 6struct tree_base 7{ 8 int code; 9}; 10 11struct tree_typed 12{ 13 struct tree_base base; 14 tree type; 15}; 16 17struct tree_common 18{ 19 struct tree_typed typed; 20}; 21 22struct tree_type_common 23{ 24 tree main_variant; 25}; 26 27union tree_node 28{ 29 struct tree_base base; 30 struct tree_typed typed; 31 struct tree_type_common type_common; 32}; 33 34int std_canonical_va_list_type (tree type) 35{ 36 if (type->base.code) 37 type = type->typed.type; 38 else 39 if (type->typed.type->base.code) 40 type = type->typed.type; 41 42 if (type->type_common.main_variant) 43 return 1; 44 45 return 0; 46} 47