summaryrefslogtreecommitdiffstats
path: root/lib/VMCore/Verifier.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-05-08 15:55:31 +0000
committerChris Lattner <sabre@nondot.org>2003-05-08 15:55:31 +0000
commit27aa094f57e49424047c85fe4243d70e79928028 (patch)
tree7a5ddc04c2969794e5db301466460b92becbd248 /lib/VMCore/Verifier.cpp
parentc29b125a9993793bd0a9b4a89b255a71a45371ad (diff)
downloadexternal_llvm-27aa094f57e49424047c85fe4243d70e79928028.zip
external_llvm-27aa094f57e49424047c85fe4243d70e79928028.tar.gz
external_llvm-27aa094f57e49424047c85fe4243d70e79928028.tar.bz2
llvm.va_start only takes on argument now
Verify that va_start doesn't occur in functions with no varargs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6038 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Verifier.cpp')
-rw-r--r--lib/VMCore/Verifier.cpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index dfb71be..7dc870f 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -131,7 +131,7 @@ namespace { // Anonymous namespace for class
void visitPHINode(PHINode &PN);
void visitBinaryOperator(BinaryOperator &B);
void visitShiftInst(ShiftInst &SI);
- void visitVarArgInst(VarArgInst &VAI);
+ void visitVarArgInst(VarArgInst &VAI) { visitInstruction(VAI); }
void visitCallInst(CallInst &CI);
void visitGetElementPtrInst(GetElementPtrInst &GEP);
void visitLoadInst(LoadInst &LI);
@@ -409,13 +409,6 @@ void Verifier::visitShiftInst(ShiftInst &SI) {
visitInstruction(SI);
}
-void Verifier::visitVarArgInst(VarArgInst &VAI) {
- Assert1(VAI.getParent()->getParent()->getFunctionType()->isVarArg(),
- "va_arg instruction may only occur in function with variable args!",
- &VAI);
- visitInstruction(VAI);
-}
-
void Verifier::visitGetElementPtrInst(GetElementPtrInst &GEP) {
const Type *ElTy =
GetElementPtrInst::getIndexedType(GEP.getOperand(0)->getType(),
@@ -519,9 +512,10 @@ void Verifier::visitIntrinsicFunctionCall(LLVMIntrinsic::ID ID, CallInst &CI) {
switch (ID) {
case LLVMIntrinsic::va_start:
- Assert1(isa<Argument>(CI.getOperand(2)),
- "va_start second argument should be a function argument!", &CI);
- NumArgs = 2;
+ Assert1(CI.getParent()->getParent()->getFunctionType()->isVarArg(),
+ "llvm.va_start intrinsic may only occur in function with variable"
+ " args!", &CI);
+ NumArgs = 1;
break;
case LLVMIntrinsic::va_end: NumArgs = 1; break;
case LLVMIntrinsic::va_copy: NumArgs = 2; break;