summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-07-12 04:32:30 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-07-12 04:32:30 +0000
commit06e1b13209a8db42ee1cf4e5991ab4a839b9b9fd (patch)
tree020268d89470b030a917e046d61547cc1d3fc7f0 /clang/lib/Sema
parente5494ffe4fbb22d12209860077a4970ee5b9711c (diff)
downloadbcm5719-llvm-06e1b13209a8db42ee1cf4e5991ab4a839b9b9fd.tar.gz
bcm5719-llvm-06e1b13209a8db42ee1cf4e5991ab4a839b9b9fd.zip
Ignore visibility attributes after definitions. This matches newer (4.7) gcc's
behavior and is the first step in fixing pr13338. llvm-svn: 160104
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index ebd9180ec64..ba1b4f77fca 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -4700,6 +4700,14 @@ void Sema::ActOnFinishCXXMemberSpecification(Scope* S, SourceLocation RLoc,
AdjustDeclIfTemplate(TagDecl);
+ for (const AttributeList* l = AttrList; l; l = l->getNext()) {
+ if (l->getKind() != AttributeList::AT_Visibility)
+ continue;
+ l->setInvalid();
+ Diag(l->getLoc(), diag::warn_attribute_after_definition_ignored) <<
+ l->getName();
+ }
+
ActOnFields(S, RLoc, TagDecl, llvm::makeArrayRef(
// strict aliasing violation!
reinterpret_cast<Decl**>(FieldCollector->getCurFields()),
OpenPOWER on IntegriCloud