summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/VMCore')
-rw-r--r--llvm/lib/VMCore/AsmWriter.cpp11
-rw-r--r--llvm/lib/VMCore/Instruction.cpp3
-rw-r--r--llvm/lib/VMCore/Verifier.cpp7
3 files changed, 15 insertions, 6 deletions
diff --git a/llvm/lib/VMCore/AsmWriter.cpp b/llvm/lib/VMCore/AsmWriter.cpp
index 3601dffe424..f8716757db0 100644
--- a/llvm/lib/VMCore/AsmWriter.cpp
+++ b/llvm/lib/VMCore/AsmWriter.cpp
@@ -661,7 +661,10 @@ void AssemblyWriter::printFunction(const Function *F) {
}
printType(F->getReturnType()) << " ";
- if (!F->getName().empty()) Out << getLLVMName(F->getName());
+ if (!F->getName().empty())
+ Out << getLLVMName(F->getName());
+ else
+ Out << "\"\"";
Out << "(";
Table.incorporateFunction(F);
@@ -882,10 +885,14 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
writeOperand(Operand, true);
Out << " to ";
printType(I.getType());
- } else if (isa<VarArgInst>(I)) {
+ } else if (isa<VAArgInst>(I)) {
writeOperand(Operand, true);
Out << ", ";
printType(I.getType());
+ } else if (const VANextInst *VAN = dyn_cast<VANextInst>(&I)) {
+ writeOperand(Operand, true);
+ Out << ", ";
+ printType(VAN->getArgType());
} else if (Operand) { // Print the normal way...
// PrintAllTypes - Instructions who have operands of all the same type
diff --git a/llvm/lib/VMCore/Instruction.cpp b/llvm/lib/VMCore/Instruction.cpp
index e5e6501bd3d..179a988eb56 100644
--- a/llvm/lib/VMCore/Instruction.cpp
+++ b/llvm/lib/VMCore/Instruction.cpp
@@ -92,7 +92,8 @@ const char *Instruction::getOpcodeName(unsigned OpCode) {
case Call: return "call";
case Shl: return "shl";
case Shr: return "shr";
- case VarArg: return "va_arg";
+ case VANext: return "vanext";
+ case VAArg: return "vaarg";
default: return "<Invalid operator> ";
}
diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp
index 1d4ac258eb3..5c70b93fc51 100644
--- a/llvm/lib/VMCore/Verifier.cpp
+++ b/llvm/lib/VMCore/Verifier.cpp
@@ -131,7 +131,8 @@ namespace { // Anonymous namespace for class
void visitPHINode(PHINode &PN);
void visitBinaryOperator(BinaryOperator &B);
void visitShiftInst(ShiftInst &SI);
- void visitVarArgInst(VarArgInst &VAI) { visitInstruction(VAI); }
+ void visitVANextInst(VANextInst &VAN) { visitInstruction(VAN); }
+ void visitVAArgInst(VAArgInst &VAA) { visitInstruction(VAA); }
void visitCallInst(CallInst &CI);
void visitGetElementPtrInst(GetElementPtrInst &GEP);
void visitLoadInst(LoadInst &LI);
@@ -505,10 +506,10 @@ void Verifier::visitIntrinsicFunctionCall(LLVMIntrinsic::ID ID, CallInst &CI) {
Assert1(CI.getParent()->getParent()->getFunctionType()->isVarArg(),
"llvm.va_start intrinsic may only occur in function with variable"
" args!", &CI);
- NumArgs = 1;
+ NumArgs = 0;
break;
case LLVMIntrinsic::va_end: NumArgs = 1; break;
- case LLVMIntrinsic::va_copy: NumArgs = 2; break;
+ case LLVMIntrinsic::va_copy: NumArgs = 1; break;
case LLVMIntrinsic::setjmp: NumArgs = 1; break;
case LLVMIntrinsic::longjmp: NumArgs = 2; break;
OpenPOWER on IntegriCloud