]> granicus.if.org Git - clang/commitdiff
Issue warning when 'weak_import' attribute is applied on a class only
authorFariborz Jahanian <fjahanian@apple.com>
Mon, 12 Apr 2010 16:57:31 +0000 (16:57 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Mon, 12 Apr 2010 16:57:31 +0000 (16:57 +0000)
when it is not supported in versions of MacOs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101044 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDeclAttr.cpp

index cc24735c4adb4a291a2e9dead9773672ddd3deab..aceaafcf3a165b0554fc23ae3da8cc1b787cec2e 100644 (file)
@@ -900,9 +900,14 @@ static void HandleWeakImportAttr(Decl *D, const AttributeList &Attr, Sema &S) {
     // We ignore weak import on properties and methods
     return;
   } else if (!(S.LangOpts.ObjCNonFragileABI && isa<ObjCInterfaceDecl>(D))) {
-    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
-    << Attr.getName() << 2 /*variable and function*/;
-    return;
+    if (S.Context.Target.getTriple().getOS() != llvm::Triple::Darwin ||
+        !isa<ObjCInterfaceDecl>(D) ||
+        S.Context.Target.getTriple().getDarwinMajorNumber() <= 10) {
+        
+        S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
+        << Attr.getName() << 2 /*variable and function*/;
+      return;
+    }
   }
 
   // Merge should handle any subsequent violations.