From: Chris Lattner Date: Sat, 2 Feb 2008 04:43:11 +0000 (+0000) Subject: fix codegen on static variables which have multiple decl nodes. These X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=495737830441e3e01ed2699eb9e38c8f15116cb5;p=clang fix codegen on static variables which have multiple decl nodes. These should be merged just like normal globals. This fixes this testcase that Anders provided: static struct s a; static struct s *ap1 = &a; static struct s a = { 10 }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46661 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CodeGen/CodeGenModule.cpp b/CodeGen/CodeGenModule.cpp index ee84f954c5..edf3dc4283 100644 --- a/CodeGen/CodeGenModule.cpp +++ b/CodeGen/CodeGenModule.cpp @@ -134,7 +134,7 @@ llvm::Constant *CodeGenModule::GetAddrOfGlobalVar(const VarDecl *D, const llvm::Type *Ty = getTypes().ConvertTypeForMem(D->getType()); // Check to see if the global already exists. - llvm::GlobalVariable *GV = getModule().getGlobalVariable(D->getName()); + llvm::GlobalVariable *GV = getModule().getGlobalVariable(D->getName(), true); // If it doesn't already exist, just create and return an entry. if (GV == 0) {