all filevar's have static storage.  Previously a global with
extern storage class was returning false from hasStaticStorage.
Ted, please review this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44515 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h
index fa1b3a7..a1bb625 100644
--- a/include/clang/AST/Decl.h
+++ b/include/clang/AST/Decl.h
@@ -304,8 +304,8 @@
   //  function) that lack a storage keyword are implicitly "static,"
   //  but are represented internally with a storage class of "None".
   bool hasStaticStorage() const {
-    return getStorageClass() == Static ||
-          (getStorageClass() == None && getKind() == FileVar);
+    if (getStorageClass() == Static) return true;
+    return getKind() == FileVar;
   }
       
   // hasLocalStorage - Returns true if a variable with function scope
diff --git a/test/Sema/init.c b/test/Sema/init.c
index 2f6df64..bbad04c 100644
--- a/test/Sema/init.c
+++ b/test/Sema/init.c
@@ -8,3 +8,8 @@
 int *myPointer2 = myArray;
 int *myPointer = &(myArray[2]);
 
+
+extern int x;
+void *g = &x;
+int *h = &x;
+