[cfe-commits] r156534 - in /cfe/trunk: lib/Sema/SemaDeclAttr.cpp test/Sema/attr-visibility.c
Rafael Espindola
rafael.espindola at gmail.com
Wed May 9 20:01:34 PDT 2012
Author: rafael
Date: Wed May 9 22:01:34 2012
New Revision: 156534
URL: http://llvm.org/viewvc/llvm-project?rev=156534&view=rev
Log:
Warn about visibility attributes in typedefs.
Modified:
cfe/trunk/lib/Sema/SemaDeclAttr.cpp
cfe/trunk/test/Sema/attr-visibility.c
Modified: cfe/trunk/lib/Sema/SemaDeclAttr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclAttr.cpp?rev=156534&r1=156533&r2=156534&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclAttr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp Wed May 9 22:01:34 2012
@@ -1857,6 +1857,10 @@
bool Sema::mergeVisibilityAttr(Decl *D, SourceRange Range,
bool Inherited,
VisibilityAttr::VisibilityType Vis) {
+ if (isa<TypedefNameDecl>(D)) {
+ Diag(Range.getBegin(), diag::warn_attribute_ignored) << "visibility";
+ return false;
+ }
VisibilityAttr *ExistingAttr = D->getAttr<VisibilityAttr>();
if (ExistingAttr) {
VisibilityAttr::VisibilityType ExistingVis = ExistingAttr->getVisibility();
Modified: cfe/trunk/test/Sema/attr-visibility.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-visibility.c?rev=156534&r1=156533&r2=156534&view=diff
==============================================================================
--- cfe/trunk/test/Sema/attr-visibility.c (original)
+++ cfe/trunk/test/Sema/attr-visibility.c Wed May 9 22:01:34 2012
@@ -20,3 +20,5 @@
extern int test7 __attribute__((visibility("default"))); // expected-note {{previous attribute is here}}
extern int test7 __attribute__((visibility("hidden"))); // expected-error {{visibility does not match previous declaration}}
+
+typedef int __attribute__((visibility("default"))) bar; // expected-warning {{visibility attribute ignored}}
More information about the cfe-commits
mailing list