diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/abi/bitfield2.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/abi/bitfield2.C | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/abi/bitfield2.C b/gcc-4.9/gcc/testsuite/g++.dg/abi/bitfield2.C new file mode 100644 index 000000000..452861ec2 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/abi/bitfield2.C @@ -0,0 +1,34 @@ +// { dg-do run } +// { dg-options "-ansi -pedantic-errors -fsigned-bitfields" } + +// Copyright (C) 2001 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 15 Dec 2001 <nathan@codesourcery.com> + +typedef int Int; +typedef signed int SInt; +typedef unsigned int UInt; + +struct A +{ + SInt bitS : 1; // signed + UInt bitU : 1; // unsigned + Int bit : 1; // signedness by -f{signed,unsigned}-bitfields +}; + +int main () +{ + A a; + + a.bitS = 1; // { dg-warning "overflow" } + a.bitU = 1; + a.bit = 1; // { dg-warning "overflow" } + + if (a.bitS != -1) + return 1; + if (a.bitU != 1) + return 2; + if (a.bit != -1) + return 3; + + return 0; +} |