]> granicus.if.org Git - clang/commitdiff
Fix <rdar://problem/6789707> "warning: 'extern' variable has an initializer" not...
authorSteve Naroff <snaroff@apple.com>
Wed, 15 Apr 2009 15:20:03 +0000 (15:20 +0000)
committerSteve Naroff <snaroff@apple.com>
Wed, 15 Apr 2009 15:20:03 +0000 (15:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69167 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDecl.cpp
test/Sema/private-extern.c

index 6456ee8d9a1a6d84cfc3fddcd3097ad0c6d2e18d..8b7e26de225005ce07006c4c3d7a6f7a30f5647c 100644 (file)
@@ -2488,7 +2488,7 @@ void Sema::AddInitializerToDecl(DeclPtrTy dcl, ExprArg init, bool DirectInit) {
       }
     }
   } else if (VDecl->isFileVarDecl()) {
-    if (VDecl->hasExternalStorage())
+    if (VDecl->getStorageClass() == VarDecl::Extern)
       Diag(VDecl->getLocation(), diag::warn_extern_init);
     if (!VDecl->isInvalidDecl())
       if (CheckInitializerTypes(Init, DclT, VDecl->getLocation(),
index f787b7d488494687d5976ac2caf789e8578fe97d..5dd37f430efa49fa9c5fb29caf20160de3974e54 100644 (file)
@@ -85,5 +85,4 @@ extern int g18 = 0; // expected-warning{{'extern' variable has an initializer}}
 __private_extern__ int g19;
 int g19 = 0;
 
-// FIXME: linkage specifier in warning.
-__private_extern__ int g20 = 0; // expected-warning{{'extern' variable has an initializer}}
+__private_extern__ int g20 = 0;