diff options
-rw-r--r-- | lib/Target/ARM/ARMAsmPrinter.cpp | 1 | ||||
-rw-r--r-- | test/CodeGen/ARM/section.ll | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp index 617933c6bb..b85cfa29c5 100644 --- a/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/lib/Target/ARM/ARMAsmPrinter.cpp @@ -296,6 +296,7 @@ bool ARMAsmPrinter::doFinalization(Module &M) { unsigned Align = TD->getTypeAlignment(C->getType()); if (C->isNullValue() && + !I->hasSection() && (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || I->hasWeakLinkage())) { SwitchToDataSection(".data", I); diff --git a/test/CodeGen/ARM/section.ll b/test/CodeGen/ARM/section.ll new file mode 100644 index 0000000000..cd33c12f41 --- /dev/null +++ b/test/CodeGen/ARM/section.ll @@ -0,0 +1,4 @@ +; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm && +; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "__DTOR_END__:" + +%__DTOR_END__ = internal global [1 x int] zeroinitializer, section ".dtors" |