1 /* { dg-do run } */ 2 3 typedef enum 4 { 5 PVT_A = 0, 6 PVT_B = 1, 7 PVT_CONFIG = 2, 8 PVT_RESERVED3 = 3, 9 } T_CR_SELECT; 10 11 typedef enum 12 { 13 STD_ULOGIC_0 = 0, 14 STD_ULOGIC_1 = 1, 15 } STD_ULOGIC; 16 17 typedef struct 18 { 19 unsigned char rtp : 3; 20 unsigned char rtn : 3; 21 } C; 22 23 typedef struct 24 { 25 unsigned char nd; 26 unsigned char pd; 27 unsigned char rtn; 28 unsigned char rtp; 29 } A; 30 31 typedef struct 32 { 33 unsigned short reserved : 14; 34 unsigned char Z_rx_enable : 2; 35 A pvt; 36 } B; 37 38 typedef struct 39 { 40 B cr_dsclk_q3; 41 B cr_data_q3; 42 B cr_addr_q3; 43 B cr_cmd_q3; 44 B cr_pres_q3; 45 C cr_vref_q3[6]; 46 unsigned char pres_disable; 47 unsigned char pres_drive_high; 48 unsigned char c_enab_120; 49 STD_ULOGIC clk_tximp; 50 STD_ULOGIC dqs_tximp; 51 STD_ULOGIC cmd_tximp; 52 STD_ULOGIC data_tximp; 53 STD_ULOGIC dqs_rxterm; 54 STD_ULOGIC data_rxterm; 55 T_CR_SELECT cr_clk_sel; 56 unsigned char cr_clk : 5; 57 T_CR_SELECT cr_dsclk_odd_sel; 58 unsigned char cr_dsclk_odd : 5; 59 T_CR_SELECT cr_dsclk_even_sel; 60 unsigned char cr_dsclk_even : 5; 61 T_CR_SELECT cr_data_sel; 62 unsigned char cr_data : 5; 63 T_CR_SELECT cr_vref_sel; 64 unsigned char cr_vref : 5; 65 T_CR_SELECT cr_others_sel; 66 unsigned char cr_others : 5; 67 } CONFIG; 68 69 typedef struct 70 { 71 unsigned char enable_monitor; 72 unsigned short step_out_pointer : 12; 73 unsigned short hold_out_pointer : 12; 74 unsigned short enable_wr_dqs : 12; 75 unsigned short use_alt_rd_dqs : 12; 76 CONFIG io_buf; 77 } mystruct; 78 79 unsigned short __attribute__((noinline,noclone)) testfunction(unsigned i)80testfunction(unsigned i) 81 { 82 mystruct dmfe[8]; 83 dmfe[0].use_alt_rd_dqs = 1; 84 dmfe[i].use_alt_rd_dqs = 0; 85 return dmfe[0].use_alt_rd_dqs; 86 } 87 88 extern void abort (void); main()89int main () 90 { 91 if (testfunction(0) != 0) 92 abort (); 93 return 0; 94 } 95