aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Support/LLVMBuilder.h
diff options
context:
space:
mode:
authorDavid Greene <greened@obbligato.org>2007-08-01 03:43:44 +0000
committerDavid Greene <greened@obbligato.org>2007-08-01 03:43:44 +0000
commit52eec548206d0b135b55ba52dd0e82e978f15ae5 (patch)
tree1c9794c86069c19f235104ec8c2a6f91405552d2 /include/llvm/Support/LLVMBuilder.h
parent7fc77611eff7c47e8c37fad58af637138e2a9d7a (diff)
downloadexternal_llvm-52eec548206d0b135b55ba52dd0e82e978f15ae5.zip
external_llvm-52eec548206d0b135b55ba52dd0e82e978f15ae5.tar.gz
external_llvm-52eec548206d0b135b55ba52dd0e82e978f15ae5.tar.bz2
New CallInst interface to address GLIBCXX_DEBUG errors caused by
indexing an empty std::vector. Updates to all clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40660 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/LLVMBuilder.h')
-rw-r--r--include/llvm/Support/LLVMBuilder.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/include/llvm/Support/LLVMBuilder.h b/include/llvm/Support/LLVMBuilder.h
index 5a80e41..bd450dc 100644
--- a/include/llvm/Support/LLVMBuilder.h
+++ b/include/llvm/Support/LLVMBuilder.h
@@ -380,22 +380,31 @@ public:
}
CallInst *CreateCall(Value *Callee, const char *Name = "") {
- return Insert(new CallInst(Callee, (Value**)0, 0, Name));
+ return Insert(new CallInst(Callee, Name));
}
CallInst *CreateCall(Value *Callee, Value *Arg, const char *Name = "") {
- return Insert(new CallInst(Callee, &Arg, 1, Name));
+ return Insert(new CallInst(Callee, Arg, Name));
}
- CallInst *CreateCall(Value *Callee, Value *Arg0, Value *Arg1,
+
+ template<typename InputIterator>
+ CallInst *CreateCall(Value *Callee, InputIterator ArgBegin, InputIterator ArgEnd,
const char *Name = "") {
- Value *Args[] = { Arg0, Arg1 };
- return Insert(new CallInst(Callee, Args, 2, Name));
+ return(Insert(new CallInst(Callee, ArgBegin, ArgEnd, Name)));
}
-
+#if 0
+ CallInst *CreateCall(Value *Callee, Value *Arg0, Value *Arg1,
+ const char *Name = "") {
+ Value *Args[] = { Arg0, Arg1 };
+ return Insert(new CallInst(Callee, Args, Args+2, Name));
+ }
+
+ // Leave this here for llvm-gcc
CallInst *CreateCall(Value *Callee, Value* const *Args, unsigned NumArgs,
const char *Name = "") {
- return Insert(new CallInst(Callee, Args, NumArgs, Name));
+ return Insert(new CallInst(Callee, Args, Args+NumArgs, Name));
}
+#endif
SelectInst *CreateSelect(Value *C, Value *True, Value *False,
const char *Name = "") {