1/* PR target/14262 */ 2/* { dg-do run } */ 3 4extern void abort (void); 5 6typedef char ACS; 7typedef char LSM; 8typedef char PANEL; 9typedef char DRIVE; 10typedef struct { 11 ACS acs; 12 LSM lsm; 13} LSMID; 14typedef struct { 15 LSMID lsm_id; 16 PANEL panel; 17} PANELID; 18typedef struct { 19 PANELID panel_id; 20 DRIVE drive; 21} DRIVEID; 22 23void sub (DRIVEID driveid) 24{ 25 if (driveid.drive != 1) 26 abort (); 27 if (driveid.panel_id.panel != 2) 28 abort (); 29 if (driveid.panel_id.lsm_id.lsm != 3) 30 abort (); 31 if (driveid.panel_id.lsm_id.acs != 4) 32 abort (); 33} 34 35int main(void) 36{ 37 DRIVEID driveid; 38 39 driveid.drive = 1; 40 driveid.panel_id.panel = 2; 41 driveid.panel_id.lsm_id.lsm = 3; 42 driveid.panel_id.lsm_id.acs = 4; 43 44 sub(driveid); 45 46 return 0; 47} 48 49 50