aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-12-02 07:47:49 +0000
committerChris Lattner <sabre@nondot.org>2007-12-02 07:47:49 +0000
commitd411e04db18f7d07a889d51086861b23cbe05518 (patch)
treef331c8e06f75e7ec9c409a07a42d2a9f292cfa83
parente86e9ce200b00a1527eb7ca27011c47aa6ba2881 (diff)
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
-rw-r--r--include/clang/AST/Decl.h4
-rw-r--r--test/Sema/init.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h
index fa1b3a7ad9..a1bb625dda 100644
--- a/include/clang/AST/Decl.h
+++ b/include/clang/AST/Decl.h
@@ -304,8 +304,8 @@ public:
// 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 2f6df64d09..bbad04cd73 100644
--- a/test/Sema/init.c
+++ b/test/Sema/init.c
@@ -8,3 +8,8 @@ int myArray[5] = {1, 2, 3, 4, 5};
int *myPointer2 = myArray;
int *myPointer = &(myArray[2]);
+
+extern int x;
+void *g = &x;
+int *h = &x;
+