From: Chris Lattner Date: Sun, 2 Dec 2007 07:47:49 +0000 (+0000) Subject: all filevar's have static storage. Previously a global with X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d411e04db18f7d07a889d51086861b23cbe05518;p=clang 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 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; +