// Test for message: invalid bit-field type '%s' [35]
/* Omit -g, see gcc_bit_field_types.c. */
/* lint1-flags: -Sw */
/*
* In traditional C, only unsigned int is a portable bit-field type.
*
* In C90, only int, signed int and unsigned int are allowed (3.5.2.1p7).
*
* In C99 and C11, only _Bool, signed int and unsigned int are allowed,
* plus implementation-defined types (6.7.2.1p5).
*/
/* Try all types from tspec_t. */
struct example {
signed signed_flag: 1;
unsigned unsigned_flag: 1;
_Bool boolean_flag: 1;
char char_flag: 1;
signed char signed_char_flag: 1;
unsigned char unsigned_char_flag: 1;
short short_flag: 1;
unsigned short unsigned_short_flag: 1;
int int_flag: 1;
unsigned int unsigned_int_flag: 1;
/* expect+1: warning: invalid bit-field type 'long' [35] */
long long_flag: 1;
/* expect+1: warning: invalid bit-field type 'unsigned long' [35] */
unsigned long unsigned_long_flag: 1;
/* expect+1: warning: invalid bit-field type 'long long' [35] */
long long long_long_flag: 1;
/* expect+1: warning: invalid bit-field type 'unsigned long long' [35] */
unsigned long long unsigned_long_long_flag: 1;
/* __int128_t omitted since it is not always defined */
/* __uint128_t omitted since it is not always defined */
/* expect+1: warning: invalid bit-field type 'float' [35] */
float float_flag: 1;
/* expect+1: warning: invalid bit-field type 'double' [35] */
double double_flag: 1;
/* expect+1: warning: invalid bit-field type 'long double' [35] */
long double long_double_flag: 1;
/* expect+2: error: void type for 'void_flag' [19] */
/* expect+1: error: zero size bit-field [37] */
void void_flag: 1;
/* expect+1: warning: invalid bit-field type 'struct typedef example_struct' [35] */
example_struct struct_flag: 1;
/* expect+1: warning: invalid bit-field type 'union typedef example_union' [35] */
example_union union_flag: 1;
example_enum enum_flag: 1;
/* expect+1: warning: invalid bit-field type 'pointer to void' [35] */
void *pointer_flag: 1;
/* expect+1: warning: invalid bit-field type 'array[4] of unsigned int' [35] */
unsigned int array_flag[4]: 1;
/* expect+1: warning: invalid bit-field type 'function(int, pointer to const char) returning void' [35] */
example_function function_flag: 1;
/* expect+2: error: invalid type for _Complex [308] */
/* expect+1: warning: invalid bit-field type 'double _Complex' [35] */
_Complex complex_flag: 1;
/* expect+1: warning: invalid bit-field type 'float _Complex' [35] */
float _Complex float_complex_flag: 1;
/* expect+1: warning: invalid bit-field type 'double _Complex' [35] */
double _Complex double_complex_flag: 1;
/* expect+1: warning: invalid bit-field type 'long double _Complex' [35] */
long double _Complex long_double_complex_flag: 1;
};