* Fix bugs
authorChris Lattner <sabre@nondot.org>
Sat, 28 Jul 2001 17:49:02 +0000 (17:49 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 28 Jul 2001 17:49:02 +0000 (17:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/AsmWriter.cpp

index 9c66339f21eaa5a3703aa4ecd071126c99148a31..0d0a5b3cc130740deddae204303b547554d765b1 100644 (file)
@@ -108,9 +108,13 @@ bool AssemblyWriter::visitMethod(const Method *M) {
 bool AssemblyWriter::processConstPool(const ConstantPool &CP, bool isMethod) {
   // Done printing arguments...
   if (isMethod) {
-    if (CP.getParentV()->castMethodAsserting()->getType()->
-       isMethodType()->isVarArg())
-      Out << ", ...";  // Output varargs portion of signature!
+    const MethodType *MT = CP.getParentV()->castMethodAsserting()->getType()->
+                                            isMethodType();
+    if (MT->isVarArg()) {
+      if (MT->getParamTypes().size())
+       Out << ", ";
+      Out << "...";  // Output varargs portion of signature!
+    }
     Out << ")\n";
   }
 
@@ -354,23 +358,7 @@ void WriteToAssembly(const BasicBlock *BB, ostream &o) {
 
 void WriteToAssembly(const ConstPoolVal *CPV, ostream &o) {
   if (CPV == 0) { o << "<null> constant pool value\n"; return; }
-
-  SlotCalculator *SlotTable;
-
-  // A Constant pool value may have a parent that is either a method or a 
-  // module.  Untangle this now...
-  //
-  if (const Method *Meth = CPV->getParentV()->castMethod()) {
-    SlotTable = new SlotCalculator(Meth, true);
-  } else {
-    SlotTable =
-      new SlotCalculator(CPV->getParentV()->castModuleAsserting(), true);
-  }
-
-  AssemblyWriter W(o, *SlotTable);
-  W.write(CPV);
-
-  delete SlotTable;
+  WriteAsOperand(o, CPV, true, true, 0);
 }
 
 void WriteToAssembly(const Instruction *I, ostream &o) {