xref: /llvm-project/clang/test/CodeGen/bool-bitfield.c (revision 8fbe78f6fc7b41d1a4228c126fcb522131150518)
1*8fbe78f6SDaniel Dunbar // RUN: %clang_cc1 -emit-llvm %s -o %t
2f2442dccSEli Friedman 
3f2442dccSEli Friedman // From GCC PR19331
4f2442dccSEli Friedman struct SysParams
5f2442dccSEli Friedman {
6f2442dccSEli Friedman  unsigned short tag;
7f2442dccSEli Friedman  unsigned short version;
8f2442dccSEli Friedman  unsigned int seqnum;
9f2442dccSEli Friedman  int contrast;
10f2442dccSEli Friedman  int igain_1, igain_2;
11f2442dccSEli Friedman  int oattn_1, oattn_2;
12f2442dccSEli Friedman  int max_out_vltg_1, max_out_vltg_2;
13f2442dccSEli Friedman  int max_mains_current;
14f2442dccSEli Friedman  int meters_mode;
15f2442dccSEli Friedman  int input_select;
16f2442dccSEli Friedman  _Bool input_parallelch2:1;
17f2442dccSEli Friedman  _Bool cliplmt_ch1:1;
18f2442dccSEli Friedman  _Bool cliplmt_ch2:1;
19f2442dccSEli Friedman  _Bool gate_ch1:1;
20f2442dccSEli Friedman  _Bool gate_ch2:1;
21f2442dccSEli Friedman  _Bool mute_ch1:1;
22f2442dccSEli Friedman  _Bool mute_ch2:1;
23f2442dccSEli Friedman  _Bool brownout:1;
24f2442dccSEli Friedman  _Bool power_on:1;
25f2442dccSEli Friedman  _Bool pwrup_mute:1;
26f2442dccSEli Friedman  _Bool keylock:1;
27f2442dccSEli Friedman  _Bool dsp_ch1:1;
28f2442dccSEli Friedman  _Bool dsp_ch2:1;
29f2442dccSEli Friedman  int dsp_preset;
30f2442dccSEli Friedman  long unlock_code;
31f2442dccSEli Friedman };
32f2442dccSEli Friedman extern struct SysParams params;
33f2442dccSEli Friedman 
34f2442dccSEli Friedman void foo(void *);
kcmd_setParams(void)35f2442dccSEli Friedman void kcmd_setParams(void)
36f2442dccSEli Friedman {
37f2442dccSEli Friedman  struct {
38f2442dccSEli Friedman   unsigned char igain_1;
39f2442dccSEli Friedman   unsigned char igain_2;
40f2442dccSEli Friedman   unsigned char max_out_vltg_1;
41f2442dccSEli Friedman   unsigned char max_out_vltg_2;
42f2442dccSEli Friedman   unsigned char max_imains;
43f2442dccSEli Friedman   unsigned char cliplmt_ch1:1;
44f2442dccSEli Friedman   unsigned char cliplmt_ch2:1;
45f2442dccSEli Friedman   unsigned char gate_ch1:1;
46f2442dccSEli Friedman   unsigned char gate_ch2:1;
47f2442dccSEli Friedman  } msg;
48f2442dccSEli Friedman  foo(&msg);
49f2442dccSEli Friedman  params.cliplmt_ch1 = msg.cliplmt_ch1;
50f2442dccSEli Friedman  params.cliplmt_ch2 = msg.cliplmt_ch2;
51f2442dccSEli Friedman  params.gate_ch1 = msg.gate_ch1;
52f2442dccSEli Friedman  params.gate_ch2 = msg.gate_ch2;
53f2442dccSEli Friedman }
54f2442dccSEli Friedman 
55