diff options
Diffstat (limited to 'lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 8198856547..ce526a9ed3 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -10085,23 +10085,17 @@ Decl *Sema::ActOnFinishLinkageSpecification(Scope *S, return LinkageSpec; } -/// \brief Perform semantic checks on a C++11 attribute-declaration. -void Sema::ActOnAttributeDeclaration(AttributeList *AttrList) { - // FIXME: Build an AST node for an attribute declaration and return it. - - // Since we do not support any attributes which can be used in an attribute - // declaration, just diagnose standard and unknown attributes appropriately. - for (/**/; AttrList; AttrList = AttrList->getNext()) { - if (AttrList->getKind() == AttributeList::IgnoredAttribute || - AttrList->isInvalid()) - continue; - - Diag(AttrList->getLoc(), - AttrList->getKind() == AttributeList::UnknownAttribute - ? diag::warn_unknown_attribute_ignored - : diag::err_attribute_declaration) - << AttrList->getName(); - } +Decl *Sema::ActOnEmptyDeclaration(Scope *S, + AttributeList *AttrList, + SourceLocation SemiLoc) { + Decl *ED = EmptyDecl::Create(Context, CurContext, SemiLoc); + // Attribute declarations appertain to empty declaration so we handle + // them here. + if (AttrList) + ProcessDeclAttributeList(S, ED, AttrList); + + CurContext->addDecl(ED); + return ED; } /// \brief Perform semantic analysis for the variable declaration that |