summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
diff options
context:
space:
mode:
authorRobert Lytton <robert@xmos.com>2013-08-01 07:52:05 +0000
committerRobert Lytton <robert@xmos.com>2013-08-01 07:52:05 +0000
commitb4787a159df6d1b070c5d8d740c5ebe74205ca4e (patch)
treed9ac4c16e2c11c4598c1e22858a3f7f0ea2aefb9 /llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
parentad5ccc2d750fce59d41c4b63a489d59443810cfc (diff)
downloadbcm5719-llvm-b4787a159df6d1b070c5d8d740c5ebe74205ca4e.tar.gz
bcm5719-llvm-b4787a159df6d1b070c5d8d740c5ebe74205ca4e.zip
Xcore target
Fix emitArrayBound() calling OutStreamer.Emit*() multiple times when trying to print a single line llvm-svn: 187562
Diffstat (limited to 'llvm/lib/Target/XCore/XCoreAsmPrinter.cpp')
-rw-r--r--llvm/lib/Target/XCore/XCoreAsmPrinter.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp b/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
index 435062b47d2..35ba2998f86 100644
--- a/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
+++ b/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
@@ -83,12 +83,15 @@ void XCoreAsmPrinter::emitArrayBound(MCSymbol *Sym, const GlobalVariable *GV) {
GV->hasWeakLinkage()) ||
GV->hasLinkOnceLinkage()) && "Unexpected linkage");
if (ArrayType *ATy = dyn_cast<ArrayType>(
- cast<PointerType>(GV->getType())->getElementType())) {
- OutStreamer.EmitSymbolAttribute(Sym, MCSA_Global);
- // FIXME: MCStreamerize.
- OutStreamer.EmitRawText(StringRef(".globound"));
- OutStreamer.EmitRawText("\t.set\t" + Twine(Sym->getName()));
- OutStreamer.EmitRawText(".globound," + Twine(ATy->getNumElements()));
+ cast<PointerType>(GV->getType())->getElementType())) {
+
+ MCSymbol *SymGlob = OutContext.GetOrCreateSymbol(
+ Twine(Sym->getName() + StringRef(".globound")));
+ OutStreamer.EmitSymbolAttribute(SymGlob, MCSA_Global);
+
+ OutStreamer.EmitRawText("\t.set\t" + Twine(Sym->getName()) +
+ ".globound," + Twine(ATy->getNumElements()));
+
if (GV->hasWeakLinkage() || GV->hasLinkOnceLinkage()) {
// TODO Use COMDAT groups for LinkOnceLinkage
OutStreamer.EmitRawText(MAI->getWeakDefDirective() +Twine(Sym->getName())+
OpenPOWER on IntegriCloud