[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