36 lines
660 B
C
36 lines
660 B
C
/* PR optimization/10467 */
|
|
/* { dg-do compile } */
|
|
/* { dg-options "-O2 -mthumb" } */
|
|
|
|
typedef enum {Ident_1} Enumeration;
|
|
|
|
typedef struct record
|
|
{
|
|
struct record *Ptr_Comp;
|
|
Enumeration Discr;
|
|
union {
|
|
struct {
|
|
Enumeration Enum_Comp;
|
|
int Int_Comp;
|
|
char Str_Comp [31];
|
|
} var_1;
|
|
} variant;
|
|
} *Rec_Pointer;
|
|
|
|
Rec_Pointer Ptr_Glob;
|
|
|
|
Proc_1 (Ptr_Val_Par)
|
|
Rec_Pointer Ptr_Val_Par;
|
|
{
|
|
Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
|
|
|
|
*Ptr_Val_Par->Ptr_Comp = *Ptr_Glob;
|
|
|
|
if (Next_Record->Discr == Ident_1)
|
|
{
|
|
Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
|
|
&Next_Record->variant.var_1.Int_Comp);
|
|
}
|
|
}
|
|
|