llvm-project/clang/test/CodeGen/bool-bitfield.c

55 lines
1.1 KiB
C

// RUN: clang -emit-llvm %s
// 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;
}