blob: 7923e1151395aec5d4c6b72b62ab5f90f4c91f57 [file] [log] [blame]
/* PR optimization/10467 */
/* { dg-do compile } */
/* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
/* { 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;
extern int Proc_7 (int, int, int *);
void
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);
}
}