summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-05 04:56:58 +0000
committerChris Lattner <sabre@nondot.org>2009-08-05 04:56:58 +0000
commitc0693bc2ea90baa6c3abe3f00c42a4dbf819916b (patch)
tree6510ea528a3372dade73613fd8549d91d5aa340f /clang/lib/CodeGen/CodeGenModule.cpp
parent13b860992a82ef5242e74103c1e080dfbd9d860f (diff)
downloadbcm5719-llvm-c0693bc2ea90baa6c3abe3f00c42a4dbf819916b.tar.gz
bcm5719-llvm-c0693bc2ea90baa6c3abe3f00c42a4dbf819916b.zip
rdar://7119244 - globals with an explicit section specified don't get
common linkage. llvm-svn: 78158
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 08dc9930ba3..95ce3e5d3af 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -883,7 +883,8 @@ void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D) {
else if (D->hasAttr<WeakAttr>())
GV->setLinkage(llvm::GlobalVariable::WeakAnyLinkage);
else if (!CompileOpts.NoCommon &&
- (!D->hasExternalStorage() && !D->getInit()))
+ !D->hasExternalStorage() && !D->getInit() &&
+ !D->getAttr<SectionAttr>())
GV->setLinkage(llvm::GlobalVariable::CommonLinkage);
else
GV->setLinkage(llvm::GlobalVariable::ExternalLinkage);
OpenPOWER on IntegriCloud