diff options
-rw-r--r-- | lib/Target/SparcV9/SparcV9AsmPrinter.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/Target/SparcV9/SparcV9AsmPrinter.cpp b/lib/Target/SparcV9/SparcV9AsmPrinter.cpp index 575355df3f..9d9cba12f2 100644 --- a/lib/Target/SparcV9/SparcV9AsmPrinter.cpp +++ b/lib/Target/SparcV9/SparcV9AsmPrinter.cpp @@ -399,8 +399,16 @@ SparcAsmPrinter::printConstant(const ConstPoolVal* CV, string valID) Out << valID << ":" << endl; Out << "\t" - << TypeToDataDirective(CV->getType()) << "\t" - << CV->getStrValue(true) << endl; + << TypeToDataDirective(CV->getType()) << "\t"; + + if (ConstPoolArray *CPA = dyn_cast<ConstPoolArray>(CV)) { + if (isStringCompatible(CPA)) + Out << getAsCString(CPA) << endl; + else + Out << CV->getStrValue() << endl; // TODO: This is broken + } else { + Out << CV->getStrValue() << endl; // TODO: this is broken + } Out << "\t.type" << "\t" << valID << ",#object" << endl; Out << "\t.size" << "\t" << valID << "," |