aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Sema/SemaDecl.cpp2
-rw-r--r--test/Sema/private-extern.c3
2 files changed, 2 insertions, 3 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index 6456ee8d9a..8b7e26de22 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -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(),
diff --git a/test/Sema/private-extern.c b/test/Sema/private-extern.c
index f787b7d488..5dd37f430e 100644
--- a/test/Sema/private-extern.c
+++ b/test/Sema/private-extern.c
@@ -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;