Fix the AsmWriter to not print extra spaces after parameter attributes.
authorDan Gohman <gohman@apple.com>
Tue, 5 Aug 2008 15:51:44 +0000 (15:51 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 5 Aug 2008 15:51:44 +0000 (15:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54351 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/AsmWriter.cpp
lib/VMCore/ParameterAttributes.cpp
lib/VMCore/Verifier.cpp
test/Assembler/2006-05-26-VarargsCallEncode.ll

index 98c6fefad7e5bbdf2783ace40f8b239781fac951..9a87b1867df44474679932b9ed764bafb6fc8881 100644 (file)
@@ -1385,7 +1385,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
 
     Out << " )";
     if (PAL.getParamAttrs(0) != ParamAttr::None)
-      Out << " " << ParamAttr::getAsString(PAL.getParamAttrs(0));
+      Out << ' ' << ParamAttr::getAsString(PAL.getParamAttrs(0));
     Out << "\n\t\t\tto";
     writeOperand(II->getNormalDest(), true);
     Out << " unwind";
index b5fb832fde6389e1c984554ac9fea433dcdd7586..d16f54de23aacf6dbe1ba94aff7114e64084c3d7 100644 (file)
@@ -52,6 +52,8 @@ std::string ParamAttr::getAsString(ParameterAttributes Attrs) {
     Result += utostr((Attrs & ParamAttr::Alignment) >> 16);
     Result += " ";
   }
+  // Trim the trailing space.
+  Result.erase(Result.end()-1);
   return Result;
 }
 
index 00a5870a349ced8298864183e72929bfd06bbe8d..c093274d9de4f156c74f0055157fb0e1648fb13a 100644 (file)
@@ -404,18 +404,18 @@ void Verifier::VerifyAttrs(ParameterAttributes Attrs, const Type *Ty,
   if (isReturnValue) {
     ParameterAttributes RetI = Attrs & ParamAttr::ParameterOnly;
     Assert1(!RetI, "Attribute " + ParamAttr::getAsString(RetI) +
-            "does not apply to return values!", V);
+            " does not apply to return values!", V);
   } else {
     ParameterAttributes ParmI = Attrs & ParamAttr::ReturnOnly;
     Assert1(!ParmI, "Attribute " + ParamAttr::getAsString(ParmI) +
-            "only applies to return values!", V);
+            " only applies to return values!", V);
   }
 
   for (unsigned i = 0;
        i < array_lengthof(ParamAttr::MutuallyIncompatible); ++i) {
     ParameterAttributes MutI = Attrs & ParamAttr::MutuallyIncompatible[i];
     Assert1(!(MutI & (MutI - 1)), "Attributes " +
-            ParamAttr::getAsString(MutI) + "are incompatible!", V);
+            ParamAttr::getAsString(MutI) + " are incompatible!", V);
   }
 
   ParameterAttributes TypeI = Attrs & ParamAttr::typeIncompatible(Ty);
@@ -931,7 +931,7 @@ void Verifier::VerifyCallSite(CallSite CS) {
 
       ParameterAttributes VArgI = Attr & ParamAttr::VarArgsIncompatible;
       Assert1(!VArgI, "Attribute " + ParamAttr::getAsString(VArgI) +
-              "cannot be used for vararg call arguments!", I);
+              " cannot be used for vararg call arguments!", I);
     }
 
   visitInstruction(*I);
index bfa4343940f1defcf81eadbf4c97c7f969bc6390..6dc60c3f79d9f793fd0df18e9f9fdb88087ca325 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llvm-dis | grep {tail call void.*sret  null}
+; RUN: llvm-as < %s | llvm-dis | grep {tail call void.*sret null}
 
 declare void @foo({  }* sret , ...)