diff options
author | Joseph Myers <joseph@codesourcery.com> | 2004-11-15 22:10:16 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2004-11-15 22:10:16 +0000 |
commit | d134f39eeb50933428755e3c01779aa3991a6ef7 (patch) | |
tree | 7a989365c25e771cb6f76f1099eaf88f7b22a0be /gcc/c-decl.c | |
parent | 9cbee3faacdd44f6a9aae35aa4819a1c5c8305e4 (diff) | |
download | gcc-d134f39eeb50933428755e3c01779aa3991a6ef7.zip gcc-d134f39eeb50933428755e3c01779aa3991a6ef7.tar.gz gcc-d134f39eeb50933428755e3c01779aa3991a6ef7.tar.bz2 |
re PR c/18498 (gcc allows non-integral bitfield types)
PR c/18498
* c-decl.c (grokdeclarator): Call check_bitfield_type_and_width
after processing the declarator.
testsuite:
* gcc.dg/bitfld-13.c: New test.
From-SVN: r90696
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r-- | gcc/c-decl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c index f5bc6e5..709abed 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -3809,10 +3809,6 @@ grokdeclarator (const struct c_declarator *declarator, && TREE_CODE (type) == INTEGER_TYPE) type = c_common_unsigned_type (type); - /* Check the type and width of a bit-field. */ - if (bitfield) - check_bitfield_type_and_width (&type, width, orig_name); - /* Figure out the type qualifiers for the declaration. There are two ways a declaration can become qualified. One is something like `const int i' where the `const' is explicit. Another is @@ -4252,6 +4248,10 @@ grokdeclarator (const struct c_declarator *declarator, /* Now TYPE has the actual type. */ + /* Check the type and width of a bit-field. */ + if (bitfield) + check_bitfield_type_and_width (&type, width, orig_name); + /* Did array size calculations overflow? */ if (TREE_CODE (type) == ARRAY_TYPE |