diff options
author | Richard Henderson <rth@redhat.com> | 2003-12-18 13:03:24 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-12-18 13:03:24 -0800 |
commit | a3bf324c4674ca8a2d09f739c48be2cc59f1a789 (patch) | |
tree | 9f486df3f0bb1ce1e6783a9fb57d4d7c914edbb4 /gcc | |
parent | 28e4696cc1310b069757e21a12c5d1bb7f46e724 (diff) | |
download | gcc-a3bf324c4674ca8a2d09f739c48be2cc59f1a789.zip gcc-a3bf324c4674ca8a2d09f739c48be2cc59f1a789.tar.gz gcc-a3bf324c4674ca8a2d09f739c48be2cc59f1a789.tar.bz2 |
c-decl.c (check_bitfield_type_and_width): Remove enum special case suppression of pedwarn.
* c-decl.c (check_bitfield_type_and_width): Remove enum special
case suppression of pedwarn.
* system.h (ENUM_BITFIELD): Use __extension__.
(CHAR_BITFIELD): Likewise.
cp/
* cp-tree.h (struct lang_type_header): Remove __extension__.
testsuite/
* gcc.dg/bitfld-1.c: Expect warnings for enum bitfields.
From-SVN: r74797
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c-decl.c | 5 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/cp-tree.h | 2 | ||||
-rw-r--r-- | gcc/system.h | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/bitfld-1.c | 3 |
7 files changed, 21 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b76dc30..39b799c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-12-18 Richard Henderson <rth@redhat.com> + + * c-decl.c (check_bitfield_type_and_width): Remove enum special + case suppression of pedwarn. + * system.h (ENUM_BITFIELD): Use __extension__. + (CHAR_BITFIELD): Likewise. + 2003-12-18 Ulrich Weigand <uweigand@de.ibm.com> Mark Dettinger <dettinge@de.ibm.com> diff --git a/gcc/c-decl.c b/gcc/c-decl.c index d07c8338..4bf9727 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -3268,10 +3268,7 @@ check_bitfield_type_and_width (tree *type, tree *width, const char *orig_name) if (pedantic && type_mv != integer_type_node && type_mv != unsigned_type_node - && type_mv != boolean_type_node - /* Accept an enum that's equivalent to int or unsigned int. */ - && (TREE_CODE (*type) != ENUMERAL_TYPE - || TYPE_PRECISION (*type) != TYPE_PRECISION (integer_type_node))) + && type_mv != boolean_type_node) pedwarn ("type of bit-field `%s' is a GCC extension", name); if (type_mv == boolean_type_node) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 78d4ee2..ab064ba 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2003-12-18 Richard Henderson <rth@redhat.com> + + * cp-tree.h (struct lang_type_header): Remove __extension__. + 2003-12-18 Jason Merrill <jason@redhat.com> PR c++/12253 diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 250318e..bf923b0 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1017,7 +1017,7 @@ enum languages { lang_c, lang_cplusplus, lang_java }; /* This is a few header flags for 'struct lang_type'. Actually, all but the first are used only for lang_type_class; they are put in this structure to save space. */ -__extension__ struct lang_type_header GTY(()) +struct lang_type_header GTY(()) { CHAR_BITFIELD is_lang_type_class : 1; diff --git a/gcc/system.h b/gcc/system.h index 5bcdd36..f8295f1 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -490,8 +490,8 @@ extern int snprintf (char *, size_t, const char *, ...); FIXME: provide a complete autoconf test for buggy enum bitfields. */ #if (GCC_VERSION > 2000) -#define ENUM_BITFIELD(TYPE) enum TYPE -#define CHAR_BITFIELD unsigned char +#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE +#define CHAR_BITFIELD __extension__ unsigned char #else #define ENUM_BITFIELD(TYPE) unsigned int #define CHAR_BITFIELD unsigned int diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2adba02..16703ba 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-12-18 Richard Henderson <rth@redhat.com> + + * gcc.dg/bitfld-1.c: Expect warnings for enum bitfields. + 2003-12-18 Steven Bosscher <steven@gcc.gnu.org> Dan Kegel <dank@kegel.com> diff --git a/gcc/testsuite/gcc.dg/bitfld-1.c b/gcc/testsuite/gcc.dg/bitfld-1.c index ae2283c..37acb6e 100644 --- a/gcc/testsuite/gcc.dg/bitfld-1.c +++ b/gcc/testsuite/gcc.dg/bitfld-1.c @@ -25,6 +25,7 @@ struct bf1 unsigned long g: 5; /* { dg-warning "GCC extension|ISO C" } */ ui h: 5; enum foo i: 2; /* { dg-error "narrower" } */ - enum foo j: 3; + /* { dg-warning "GCC extension|ISO C" "extension" { target *-*-* } 27 } */ + enum foo j: 3; /* { dg-warning "GCC extension|ISO C" } */ unsigned int k: 256; /* { dg-error "exceeds its type" } */ }; |