diff options
author | Simon Martin <simartin@users.sourceforge.net> | 2008-06-14 05:21:30 +0000 |
---|---|---|
committer | Simon Martin <simartin@gcc.gnu.org> | 2008-06-14 05:21:30 +0000 |
commit | a6d9bc9dda3c7e4fe4475016fff3a9c45bc97c54 (patch) | |
tree | 49becebf3f85a8957f6c86b09667c1331cf064cb /gcc/cp/parser.c | |
parent | 74bae98e59788f0fd3466aeecb9f549f9afc66e5 (diff) | |
download | gcc-a6d9bc9dda3c7e4fe4475016fff3a9c45bc97c54.zip gcc-a6d9bc9dda3c7e4fe4475016fff3a9c45bc97c54.tar.gz gcc-a6d9bc9dda3c7e4fe4475016fff3a9c45bc97c54.tar.bz2 |
re PR c++/35320 (ICE with invalid friend declaration)
gcc/cp/
2008-06-14 Simon Martin <simartin@users.sourceforge.net>
PR c++/35320
* decl2.c (grokbitfield): Receive the list of attributes, pass it to
grokdeclarator and apply it to the created declaration.
* cp-tree.h (grokbitfield): Update prototype.
* parser.c (cp_parser_member_declaration): Don't apply the attributes
since they are now applied in grokbitfield. Adjusted the call to
grokbitfield.
(cp_parser_objc_class_ivars): Likewise.
gcc/testsuite/
2008-06-14 Simon Martin <simartin@users.sourceforge.net>
PR c++/35320
* g++.dg/parse/bitfield3.C: New test.
From-SVN: r136778
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r-- | gcc/cp/parser.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 12d1a2d..467a603 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -15238,9 +15238,8 @@ cp_parser_member_declaration (cp_parser* parser) sfk_none) : NULL, &decl_specifiers, - width); - /* Apply the attributes. */ - cplus_decl_attributes (&decl, attributes, /*flags=*/0); + width, + attributes); } else { @@ -19150,11 +19149,10 @@ cp_parser_objc_class_ivars (cp_parser* parser) attributes = chainon (prefix_attributes, attributes); if (width) - { /* Create the bitfield declaration. */ - decl = grokbitfield (declarator, &declspecs, width); - cplus_decl_attributes (&decl, attributes, /*flags=*/0); - } + decl = grokbitfield (declarator, &declspecs, + width, + attributes); else decl = grokfield (declarator, &declspecs, NULL_TREE, /*init_const_expr_p=*/false, |