1/* PR optimization/10467 */ 2/* { dg-do compile } */ 3/* { dg-options "-O2 -mthumb" } */ 4 5typedef enum {Ident_1} Enumeration; 6 7typedef struct record 8{ 9 struct record *Ptr_Comp; 10 Enumeration Discr; 11 union { 12 struct { 13 Enumeration Enum_Comp; 14 int Int_Comp; 15 char Str_Comp [31]; 16 } var_1; 17 } variant; 18} *Rec_Pointer; 19 20Rec_Pointer Ptr_Glob; 21 22Proc_1 (Ptr_Val_Par) 23 Rec_Pointer Ptr_Val_Par; 24{ 25 Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp; 26 27 *Ptr_Val_Par->Ptr_Comp = *Ptr_Glob; 28 29 if (Next_Record->Discr == Ident_1) 30 { 31 Proc_7 (Next_Record->variant.var_1.Int_Comp, 10, 32 &Next_Record->variant.var_1.Int_Comp); 33 } 34} 35 36