Add support for parsing the optional attribute-specifier-seq at the
end of a decl-specifier-seq llvm-svn: 140793
This commit is contained in:
parent
e5a8f2f9f3
commit
70188b3fc2
|
@ -1541,6 +1541,9 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
|
|||
switch (Tok.getKind()) {
|
||||
default:
|
||||
DoneWithDeclSpec:
|
||||
// [C++0x] decl-specifier-seq: decl-specifier attribute-specifier-seq[opt]
|
||||
MaybeParseCXX0XAttributes(DS.getAttributes());
|
||||
|
||||
// If this is not a declaration specifier token, we're done reading decl
|
||||
// specifiers. First verify that DeclSpec's are consistent.
|
||||
DS.Finish(Diags, PP);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
// Declaration syntax checks
|
||||
[[]] int before_attr;
|
||||
int [[]] between_attr;
|
||||
int after_attr [[]];
|
||||
int * [[]] ptr_attr;
|
||||
int array_attr [1] [[]];
|
||||
|
@ -15,6 +16,7 @@ template <typename T> [[]] void template_attr ();
|
|||
|
||||
int comma_attr [[,]]; // expected-error {{expected identifier}}
|
||||
int scope_attr [[foo::]]; // expected-error {{expected identifier}}
|
||||
unsigned [[]] int attr_in_decl_spec; // expected-error {{expected unqualified-id}}
|
||||
int & [[]] ref_attr = after_attr; // expected-error {{an attribute list cannot appear here}}
|
||||
class foo {
|
||||
void after_const_attr () const [[]]; // expected-error {{expected body of lambda expression}} expected-error {{array has incomplete element type 'void'}}
|
||||
|
|
Loading…
Reference in New Issue