aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/CBackend/Writer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/CBackend/Writer.cpp')
-rw-r--r--lib/Target/CBackend/Writer.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index 18c4d064e3..89ed2ad021 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -2265,10 +2265,6 @@ std::string CWriter::InterpretASMConstraint(InlineAsm::ConstraintInfo& c) {
assert(c.Codes.size() == 1 && "Too many asm constraint codes to handle");
- //catch numeric constraints
- if (c.Codes[0].find_first_not_of("0123456789") >= c.Codes[0].size())
- return c.Codes[0];
-
const char** table = 0;
//Grab the translation table from TargetAsmInfo if it exists
@@ -2291,8 +2287,8 @@ std::string CWriter::InterpretASMConstraint(InlineAsm::ConstraintInfo& c) {
if (c.Codes[0] == table[i])
return table[i+1];
- assert(0 && "Unknown Asm Constraint");
- return "";
+ //default is identity
+ return c.Codes[0];
}
//TODO: import logic from AsmPrinter.cpp
@@ -2383,7 +2379,7 @@ void CWriter::visitInlineAsm(CallInst &CI) {
if (I + 1 != E)
Out << ",";
}
- Out << "\n :" << Clobber.substr(1) << ")\n";
+ Out << "\n :" << (Clobber.size() ? Clobber.substr(1) : "") << ")\n";
}
void CWriter::visitMallocInst(MallocInst &I) {