/* Test -funsigned-bitfields works. */
|
/* Test -funsigned-bitfields works. */
|
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
|
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
|
/* { dg-do run } */
|
/* { dg-do run } */
|
/* { dg-options "-funsigned-bitfields -fsigned-char" } */
|
/* { dg-options "-funsigned-bitfields -fsigned-char" } */
|
|
|
typedef char c;
|
typedef char c;
|
typedef signed char sc;
|
typedef signed char sc;
|
typedef unsigned char uc;
|
typedef unsigned char uc;
|
typedef short s;
|
typedef short s;
|
typedef signed short ss;
|
typedef signed short ss;
|
typedef unsigned short us;
|
typedef unsigned short us;
|
typedef n;
|
typedef n;
|
typedef int i;
|
typedef int i;
|
typedef signed int si;
|
typedef signed int si;
|
typedef unsigned int ui;
|
typedef unsigned int ui;
|
typedef long l;
|
typedef long l;
|
typedef signed long sl;
|
typedef signed long sl;
|
typedef unsigned long ul;
|
typedef unsigned long ul;
|
typedef long long ll;
|
typedef long long ll;
|
typedef signed long long sll;
|
typedef signed long long sll;
|
typedef unsigned long long ull;
|
typedef unsigned long long ull;
|
|
|
typedef c ct;
|
typedef c ct;
|
typedef sc sct;
|
typedef sc sct;
|
typedef uc uct;
|
typedef uc uct;
|
typedef s st;
|
typedef s st;
|
typedef ss sst;
|
typedef ss sst;
|
typedef us ust;
|
typedef us ust;
|
typedef n nt;
|
typedef n nt;
|
typedef i it;
|
typedef i it;
|
typedef si sit;
|
typedef si sit;
|
typedef ui uit;
|
typedef ui uit;
|
typedef l lt;
|
typedef l lt;
|
typedef sl slt;
|
typedef sl slt;
|
typedef ul ult;
|
typedef ul ult;
|
typedef ll llt;
|
typedef ll llt;
|
typedef sll sllt;
|
typedef sll sllt;
|
typedef ull ullt;
|
typedef ull ullt;
|
|
|
struct foo {
|
struct foo {
|
char char0 : 1;
|
char char0 : 1;
|
c char1 : 1;
|
c char1 : 1;
|
ct char2 : 1;
|
ct char2 : 1;
|
signed char schar0 : 1;
|
signed char schar0 : 1;
|
sc schar1 : 1;
|
sc schar1 : 1;
|
sct schar2 : 1;
|
sct schar2 : 1;
|
unsigned char uchar0 : 1;
|
unsigned char uchar0 : 1;
|
uc uchar1 : 1;
|
uc uchar1 : 1;
|
uct uchar2 : 1;
|
uct uchar2 : 1;
|
short short0 : 1;
|
short short0 : 1;
|
s short1 : 1;
|
s short1 : 1;
|
st short2 : 1;
|
st short2 : 1;
|
signed short sshort0 : 1;
|
signed short sshort0 : 1;
|
ss sshort1 : 1;
|
ss sshort1 : 1;
|
sst sshort2 : 1;
|
sst sshort2 : 1;
|
unsigned short ushort0 : 1;
|
unsigned short ushort0 : 1;
|
us ushort1 : 1;
|
us ushort1 : 1;
|
ust ushort2 : 1;
|
ust ushort2 : 1;
|
__attribute__((dummy)) int0 : 1; /* { dg-warning "attribute directive ignored" } */
|
__attribute__((dummy)) int0 : 1; /* { dg-warning "attribute directive ignored" } */
|
n int1 : 1;
|
n int1 : 1;
|
nt int2 : 1;
|
nt int2 : 1;
|
int int3 : 1;
|
int int3 : 1;
|
i int4 : 1;
|
i int4 : 1;
|
it int5 : 1;
|
it int5 : 1;
|
signed int sint0 : 1;
|
signed int sint0 : 1;
|
si sint1 : 1;
|
si sint1 : 1;
|
sit sint2 : 1;
|
sit sint2 : 1;
|
unsigned int uint0 : 1;
|
unsigned int uint0 : 1;
|
ui uint1 : 1;
|
ui uint1 : 1;
|
uit uint2 : 1;
|
uit uint2 : 1;
|
long long0 : 1;
|
long long0 : 1;
|
l long1 : 1;
|
l long1 : 1;
|
lt long2 : 1;
|
lt long2 : 1;
|
signed long slong0 : 1;
|
signed long slong0 : 1;
|
sl slong1 : 1;
|
sl slong1 : 1;
|
slt slong2 : 1;
|
slt slong2 : 1;
|
unsigned long ulong0 : 1;
|
unsigned long ulong0 : 1;
|
ul ulong1 : 1;
|
ul ulong1 : 1;
|
ult ulong2 : 1;
|
ult ulong2 : 1;
|
long long llong0 : 1;
|
long long llong0 : 1;
|
ll llong1 : 1;
|
ll llong1 : 1;
|
llt llong2 : 1;
|
llt llong2 : 1;
|
signed long long sllong0 : 1;
|
signed long long sllong0 : 1;
|
sll sllong1 : 1;
|
sll sllong1 : 1;
|
sllt sllong2 : 1;
|
sllt sllong2 : 1;
|
unsigned long long ullong0 : 1;
|
unsigned long long ullong0 : 1;
|
ull ullong1 : 1;
|
ull ullong1 : 1;
|
ullt ullong2 : 1;
|
ullt ullong2 : 1;
|
};
|
};
|
|
|
struct foo x;
|
struct foo x;
|
|
|
extern void abort (void);
|
extern void abort (void);
|
extern void exit (int);
|
extern void exit (int);
|
extern void *memset (void *, int, __SIZE_TYPE__);
|
extern void *memset (void *, int, __SIZE_TYPE__);
|
|
|
int
|
int
|
main (void)
|
main (void)
|
{
|
{
|
memset (&x, (unsigned char)-1, sizeof(x));
|
memset (&x, (unsigned char)-1, sizeof(x));
|
if (x.char0 != 1 || x.char1 != 1 || x.char2 != 1
|
if (x.char0 != 1 || x.char1 != 1 || x.char2 != 1
|
|| x.schar0 != -1 || x.schar1 != -1 || x.schar2 != -1
|
|| x.schar0 != -1 || x.schar1 != -1 || x.schar2 != -1
|
|| x.uchar0 != 1 || x.uchar1 != 1 || x.uchar2 != 1
|
|| x.uchar0 != 1 || x.uchar1 != 1 || x.uchar2 != 1
|
|| x.short0 != 1 || x.short1 != 1 || x.short2 != 1
|
|| x.short0 != 1 || x.short1 != 1 || x.short2 != 1
|
|| x.sshort0 != -1 || x.sshort1 != -1 || x.sshort2 != -1
|
|| x.sshort0 != -1 || x.sshort1 != -1 || x.sshort2 != -1
|
|| x.ushort0 != 1 || x.ushort1 != 1 || x.ushort2 != 1
|
|| x.ushort0 != 1 || x.ushort1 != 1 || x.ushort2 != 1
|
|| x.int0 != 1 || x.int1 != 1 || x.int2 != 1
|
|| x.int0 != 1 || x.int1 != 1 || x.int2 != 1
|
|| x.int3 != 1 || x.int4 != 1 || x.int5 != 1
|
|| x.int3 != 1 || x.int4 != 1 || x.int5 != 1
|
|| x.sint0 != -1 || x.sint1 != -1 || x.sint2 != -1
|
|| x.sint0 != -1 || x.sint1 != -1 || x.sint2 != -1
|
|| x.uint0 != 1 || x.uint1 != 1 || x.uint2 != 1
|
|| x.uint0 != 1 || x.uint1 != 1 || x.uint2 != 1
|
|| x.long0 != 1 || x.long1 != 1 || x.long2 != 1
|
|| x.long0 != 1 || x.long1 != 1 || x.long2 != 1
|
|| x.slong0 != -1 || x.slong1 != -1 || x.slong2 != -1
|
|| x.slong0 != -1 || x.slong1 != -1 || x.slong2 != -1
|
|| x.ulong0 != 1 || x.ulong1 != 1 || x.ulong2 != 1
|
|| x.ulong0 != 1 || x.ulong1 != 1 || x.ulong2 != 1
|
|| x.llong0 != 1 || x.llong1 != 1 || x.llong2 != 1
|
|| x.llong0 != 1 || x.llong1 != 1 || x.llong2 != 1
|
|| x.sllong0 != -1 || x.sllong1 != -1 || x.sllong2 != -1
|
|| x.sllong0 != -1 || x.sllong1 != -1 || x.sllong2 != -1
|
|| x.ullong0 != 1 || x.ullong1 != 1 || x.ullong2 != 1)
|
|| x.ullong0 != 1 || x.ullong1 != 1 || x.ullong2 != 1)
|
abort ();
|
abort ();
|
exit (0);
|
exit (0);
|
}
|
}
|
|
|