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