Fixes a regression when redeclaration of a global satic 
is an extern local to a function. Radar 8125274.

llvm-svn: 106773
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index ebfb981..5c1de6a 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -1456,7 +1456,8 @@
   }
 
   if (New->hasExternalStorage() &&
-      Old->getLinkage() == InternalLinkage)
+      Old->getLinkage() == InternalLinkage &&
+      New->getDeclContext() == Old->getDeclContext())
     New->setStorageClass(Old->getStorageClass());
 
   // Keep a chain of previous declarations.