This attempts to address one issue reported in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33911 . Attributes at the
end of a declaration of template member functions are discarded in
cp_parser_init_declarator.  The suggested workaround is to place the
attributes into the declaration-specifiers. The code in
cp_parser_init_declarator actually parses the attributes at the end,
but only passes the prefix_attributes (from decl-specifier-seq) to
grokfield(). Appending the parsed atrtributes to prefix_attributes
seems to work, but I don't know if this is sufficient in all cases.
Bootstraps and all tests pass with the patch on x86_64/linux. Is this
ok for trunk?

2013-10-02  Easwaran Raman  <era...@google.com>

        PR c++/33911
        * parser.c (cp_parser_init_declarator): Do not drop attributes
        of template member functions.

2013-10-02  Easwaran Raman  <era...@google.com>

        PR c++/33911
        * g++.dg/ext/attribute47.C: New.

Attachment: parser_attribute.patch
Description: Binary data

Reply via email to