diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-12 04:32:30 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-07-12 04:32:30 +0000 |
| commit | 06e1b13209a8db42ee1cf4e5991ab4a839b9b9fd (patch) | |
| tree | 020268d89470b030a917e046d61547cc1d3fc7f0 /clang/lib/Sema | |
| parent | e5494ffe4fbb22d12209860077a4970ee5b9711c (diff) | |
| download | bcm5719-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.cpp | 8 |
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()), |

