common linkage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78158
91177308-0d34-0410-b5e6-
96231b3b80d8
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);
-// RUN: clang-cc -emit-llvm -o - %s | not grep "common"
+// RUN: clang-cc -emit-llvm -o - %s | FileCheck %s
// This checks that the global won't be marked as common.
// (It shouldn't because it's being initialized).
int a;
int a = 242;
+// CHECK: @a = global i32 242
+
+// This shouldn't be emitted as common because it has an explicit section.
+// rdar://7119244
+int b __attribute__((section("foo")));
+
+// CHECK: @b = global i32 0, section "foo"