summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-12-02 02:45:55 +0000
committerEric Christopher <echristo@apple.com>2010-12-02 02:45:55 +0000
commit8a2ee390be8425ac457be265067afc984a71b9dd (patch)
treecb77651c72b77f20de9b2dc6d521bcdc80211239 /clang/lib/CodeGen
parent014fe01ac8a6a013ef4fdbcd02edbcbbcdab3724 (diff)
downloadbcm5719-llvm-8a2ee390be8425ac457be265067afc984a71b9dd.tar.gz
bcm5719-llvm-8a2ee390be8425ac457be265067afc984a71b9dd.zip
Add support for the common and nocommon attributes.
rdar://8560647 llvm-svn: 120650
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index a3cf69b675c..1dab0274556 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -1214,7 +1214,9 @@ CodeGenModule::GetLLVMLinkageVarDefinition(const VarDecl *D,
// FIXME: It seems like we can provide more specific linkage here
// (LinkOnceODR, WeakODR).
return llvm::GlobalVariable::WeakAnyLinkage;
- else if (!getLangOptions().CPlusPlus && !CodeGenOpts.NoCommon &&
+ else if (!getLangOptions().CPlusPlus &&
+ ((!CodeGenOpts.NoCommon && !D->getAttr<NoCommonAttr>()) ||
+ D->getAttr<CommonAttr>()) &&
!D->hasExternalStorage() && !D->getInit() &&
!D->getAttr<SectionAttr>() && !D->isThreadSpecified()) {
// Thread local vars aren't considered common linkage.
OpenPOWER on IntegriCloud