| // RUN: clang -emit-llvm %s -o %t |
| |
| // From GCC PR19331 |
| struct SysParams |
| { |
| unsigned short tag; |
| unsigned short version; |
| unsigned int seqnum; |
| int contrast; |
| int igain_1, igain_2; |
| int oattn_1, oattn_2; |
| int max_out_vltg_1, max_out_vltg_2; |
| int max_mains_current; |
| int meters_mode; |
| int input_select; |
| _Bool input_parallelch2:1; |
| _Bool cliplmt_ch1:1; |
| _Bool cliplmt_ch2:1; |
| _Bool gate_ch1:1; |
| _Bool gate_ch2:1; |
| _Bool mute_ch1:1; |
| _Bool mute_ch2:1; |
| _Bool brownout:1; |
| _Bool power_on:1; |
| _Bool pwrup_mute:1; |
| _Bool keylock:1; |
| _Bool dsp_ch1:1; |
| _Bool dsp_ch2:1; |
| int dsp_preset; |
| long unlock_code; |
| }; |
| extern struct SysParams params; |
| |
| void foo(void *); |
| void kcmd_setParams(void) |
| { |
| struct { |
| unsigned char igain_1; |
| unsigned char igain_2; |
| unsigned char max_out_vltg_1; |
| unsigned char max_out_vltg_2; |
| unsigned char max_imains; |
| unsigned char cliplmt_ch1:1; |
| unsigned char cliplmt_ch2:1; |
| unsigned char gate_ch1:1; |
| unsigned char gate_ch2:1; |
| } msg; |
| foo(&msg); |
| params.cliplmt_ch1 = msg.cliplmt_ch1; |
| params.cliplmt_ch2 = msg.cliplmt_ch2; |
| params.gate_ch1 = msg.gate_ch1; |
| params.gate_ch2 = msg.gate_ch2; |
| } |
| |