2018-03-08 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.target / arm / 20031108-1.c
blob7923e1151395aec5d4c6b72b62ab5f90f4c91f57
1 /* PR optimization/10467 */
2 /* { dg-do compile } */
3 /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
4 /* { dg-options "-O2 -mthumb" } */
6 typedef enum {Ident_1} Enumeration;
8 typedef struct record
10 struct record *Ptr_Comp;
11 Enumeration Discr;
12 union {
13 struct {
14 Enumeration Enum_Comp;
15 int Int_Comp;
16 char Str_Comp [31];
17 } var_1;
18 } variant;
19 } *Rec_Pointer;
21 Rec_Pointer Ptr_Glob;
23 extern int Proc_7 (int, int, int *);
25 void
26 Proc_1 (Ptr_Val_Par)
27 Rec_Pointer Ptr_Val_Par;
29 Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
31 *Ptr_Val_Par->Ptr_Comp = *Ptr_Glob;
33 if (Next_Record->Discr == Ident_1)
35 Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
36 &Next_Record->variant.var_1.Int_Comp);