Implement P0028R4, C++17 using attribute namespaces without repetition
commit4bdba715a1dbb9b4d556dedcaf404cf2f8ce5f51
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Sep 2016 19:20:38 +0000 (13 19:20 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Sep 2016 19:20:38 +0000 (13 19:20 +0000)
tree74f623c862618a148b54782ef57d24472a7727cd
parent99d887de6caa8e13b938317c2835aecc65b31b6f
Implement P0028R4, C++17 using attribute namespaces without repetition
* parser.c (cp_parser_std_attribute): Add ATTR_NS argument.  Diagnose
non-NULL ATTR_NS with scoped attribute token.  Handle non-NULL
ATTR_NS with non-scoped attribute tokens.  Allow named ops in
identifier after ::.
(cp_parser_std_attribute_list): Add ATTR_NS argument, pass it down
to cp_parser_std_attribute calls.
(cp_parser_std_attribute_spec): Parse optional C++17
attribute-using-prefix, adjust grammar in function comment.

* g++.dg/cpp0x/gen-attrs-61.C: New test.
* g++.dg/cpp1z/gen-attrs1.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240121 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/gen-attrs-61.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C [new file with mode: 0644]