diff options
author | Joseph Myers <joseph@codesourcery.com> | 2007-09-20 23:15:07 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2007-09-20 23:15:07 +0100 |
commit | 02668aba7ebce73b74ec9e5f9af08637fcedc5a7 (patch) | |
tree | 8ea10ee415e476cfe0b3f1c8340a58cf30831a74 /gcc/testsuite/gcc.dg/c99-bool-3.c | |
parent | 9fa6b0af1f0a8ec3d6799f54a7c8feedbbc0d4f9 (diff) | |
download | gcc-02668aba7ebce73b74ec9e5f9af08637fcedc5a7.zip gcc-02668aba7ebce73b74ec9e5f9af08637fcedc5a7.tar.gz gcc-02668aba7ebce73b74ec9e5f9af08637fcedc5a7.tar.bz2 |
c-decl.c (check_bitfield_type_and_width): Don't allow _Bool bit-fields wider than one bit.
* c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
bit-fields wider than one bit.
testsuite:
* gcc.dg/c99-bool-2.c, gcc.dg/c99-bool-3.c: New tests.
From-SVN: r128634
Diffstat (limited to 'gcc/testsuite/gcc.dg/c99-bool-3.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/c99-bool-3.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/c99-bool-3.c b/gcc/testsuite/gcc.dg/c99-bool-3.c new file mode 100644 index 0000000..f93547a --- /dev/null +++ b/gcc/testsuite/gcc.dg/c99-bool-3.c @@ -0,0 +1,33 @@ +/* Test for _Bool bit-fields. They have the semantics of _Bool, at + least for now (DR#335 Spring 2007 discussion). */ +/* Origin: Joseph Myers <joseph@codesourcery.com> */ +/* { dg-do run } */ +/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ +struct foo +{ + _Bool a : 1; +} sf; + +extern void abort (void); +extern void exit (int); + +int +main (void) +{ + int i; + for (i = 0; i < sizeof (struct foo); i++) + *((unsigned char *)&sf + i) = (unsigned char) -1; + sf.a = 2; + if (sf.a != 1) + abort (); + sf.a = 0; + if (sf.a != 0) + abort (); + sf.a = 0.2; + if (sf.a != 1) + abort (); + sf.a = &sf; + if (sf.a != 1) + abort (); + exit (0); +} |