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