2015-04-22 52 views
0

的功能,我想在LLVM IR創建一個空的功能LLVM:運行時錯誤創建空的輸入和輸出

void foo(){ 
} 

我用

LLVMContext Context; 
std::unique_ptr<Module> Owner(new Module("test", Context)); 
Module *M = Owner.get();  
Function *foo = 
cast<Function>(M->getOrInsertFunction("foo", Type::getVoidTy(Context), 
             Type::getVoidTy(Context), 
             (Type *)0)); 

它編譯,但給了我這個錯誤在運行時

LLVM-3.7.src/LIB/IR/Type.cpp:350:LLVM ::函數類型::函數類型(LLVM ::類型*,LLVM ::數組引用,布爾):斷言`isValidArgument類型(Params [i])& &「不是函數參數的有效類型!」'失敗。 *開車撞返回代碼:0 *

我們如何能做到在LLVM這void foo(){}功能的任何想法?

回答

1

Void不是有效的參數類型。僅對返回類型使用void,然後傳遞null以創建一個空的參數列表。

+0

LeMahiu,謝謝。你節省了我的一天。 – zell