diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-18 21:07:57 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-18 21:07:57 +0000 |
| commit | d661a853fd3da74eff3525ea3c3af1cae831db3e (patch) | |
| tree | a4c33a387dff1d8e41cf409df04216a84c22e7cc /clang/lib/CodeGen/CodeGenModule.cpp | |
| parent | e6290ccf9b56dec24e3821eec1a3fb034b1bc0a8 (diff) | |
| download | llvm-d661a853fd3da74eff3525ea3c3af1cae831db3e.zip llvm-d661a853fd3da74eff3525ea3c3af1cae831db3e.tar.gz llvm-d661a853fd3da74eff3525ea3c3af1cae831db3e.tar.bz2 | |
Add unnamed_addr in CreateRuntimeVariable.
llvm-svn: 123773
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 42d5e79..4d0d40a 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -922,7 +922,8 @@ static bool DeclIsConstantGlobal(ASTContext &Context, const VarDecl *D) { llvm::Constant * CodeGenModule::GetOrCreateLLVMGlobal(llvm::StringRef MangledName, const llvm::PointerType *Ty, - const VarDecl *D) { + const VarDecl *D, + bool UnnamedAddr) { // Lookup the entry, lazily creating it if necessary. llvm::GlobalValue *Entry = GetGlobalValue(MangledName); if (Entry) { @@ -933,6 +934,9 @@ CodeGenModule::GetOrCreateLLVMGlobal(llvm::StringRef MangledName, WeakRefReferences.erase(Entry); } + if (UnnamedAddr) + Entry->setUnnamedAddr(true); + if (Entry->getType() == Ty) return Entry; @@ -1008,7 +1012,8 @@ llvm::Constant *CodeGenModule::GetAddrOfGlobalVar(const VarDecl *D, llvm::Constant * CodeGenModule::CreateRuntimeVariable(const llvm::Type *Ty, llvm::StringRef Name) { - return GetOrCreateLLVMGlobal(Name, llvm::PointerType::getUnqual(Ty), 0); + return GetOrCreateLLVMGlobal(Name, llvm::PointerType::getUnqual(Ty), 0, + true); } void CodeGenModule::EmitTentativeDefinition(const VarDecl *D) { |
