diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-08-08 17:41:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-08 17:41:08 +0200 |
commit | 6c17b52cb68feeb35afa6cb77ead966756b391d6 (patch) | |
tree | 89c09788d0d4a04f76b3fea6ebe8a0c3e6d6b0f5 /eval/src | |
parent | 48b51db3e0cba3b7eeddf08c36c8ed05c6fdfa71 (diff) | |
parent | 862bbc7ef8c4bc669fb1cd2c438db1fbe6e7595c (diff) |
Merge pull request #6518 from vespa-engine/havardpe/avoid-old-style-varargs-when-specifying-function-types
Avoid using the 'convenient' way to specify parameter types when
Diffstat (limited to 'eval/src')
-rw-r--r-- | eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp index 799a76656c9..71ca74f4167 100644 --- a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp +++ b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp @@ -83,6 +83,19 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser { std::vector<gbdt::Forest::UP> &forests; std::vector<PluginState::UP> &plugin_state; + llvm::FunctionType *make_call_1_fun_t() { + std::vector<llvm::Type*> param_types; + param_types.push_back(builder.getDoubleTy()); + return llvm::FunctionType::get(builder.getDoubleTy(), param_types, false); + } + + llvm::FunctionType *make_call_2_fun_t() { + std::vector<llvm::Type*> param_types; + param_types.push_back(builder.getDoubleTy()); + param_types.push_back(builder.getDoubleTy()); + return llvm::FunctionType::get(builder.getDoubleTy(), param_types, false); + } + llvm::PointerType *make_eval_forest_funptr_t() { std::vector<llvm::Type*> param_types; param_types.push_back(builder.getVoidTy()->getPointerTo()); @@ -319,8 +332,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser { make_call_1(llvm::Intrinsic::getDeclaration(&module, id, builder.getDoubleTy())); } void make_call_1(const char *name) { - make_call_1(llvm::dyn_cast<llvm::Function>( - module.getOrInsertFunction(name, builder.getDoubleTy(), builder.getDoubleTy(), nullptr))); + make_call_1(llvm::dyn_cast<llvm::Function>(module.getOrInsertFunction(name, make_call_1_fun_t()))); } void make_call_2(llvm::Function *fun) { @@ -335,8 +347,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser { make_call_2(llvm::Intrinsic::getDeclaration(&module, id, builder.getDoubleTy())); } void make_call_2(const char *name) { - make_call_2(llvm::dyn_cast<llvm::Function>( - module.getOrInsertFunction(name, builder.getDoubleTy(), builder.getDoubleTy(), builder.getDoubleTy(), nullptr))); + make_call_2(llvm::dyn_cast<llvm::Function>(module.getOrInsertFunction(name, make_call_2_fun_t()))); } //------------------------------------------------------------------------- |