问题描述
这是C11Tester的页面:Homepage
我是LLVM的新手,所以,如果我的问题不重要,请多多包涵。我正在尝试构建LLVM前端,以为C11Tester框架检测C / C ++代码。
我按照他们页面中提供的llvm前端自述文件中的说明进行了以下操作:(页面中的第3个git clone链接)
- 将CDSPass文件夹放在目录
llvm/lib/Transformation
下 - 将
add_subdirectory(CDSPass)
添加到了llvm/lib/Transformation/CMakeLists.txt
- 通过以下命令使用CMake构建LLVM:
cmake -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_USE_LINKER=lld -G "Unix Makefiles" ../llvm
make -j 12
以下是我在make -j 12
中遇到的错误的前几行:
/home/siv2r/Projects/llvm-project/llvm/lib/Transforms/CDSPass/CDSPass.cpp: In member function ‘void {anonymous}::CDSPass::initializeCallbacks(llvm::Module&)’:
/home/siv2r/Projects/llvm-project/llvm/lib/Transforms/CDSPass/CDSPass.cpp:177:38: error: cannot convert ‘llvm::FunctionCallee’ to ‘llvm::Constant*’ in assignment
177 | CDSFuncEntry = M.getOrInsertFunction("cds_func_entry",| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
| |
| llvm::FunctionCallee
178 | VoidTy,Int8PtrTy);
| ~~~~~~~~~~~~~~~~~~
/home/siv2r/Projects/llvm-project/llvm/lib/Transforms/CDSPass/CDSPass.cpp:179:37: error: cannot convert ‘llvm::FunctionCallee’ to ‘llvm::Constant*’ in assignment
179 | CDSFuncExit = M.getOrInsertFunction("cds_func_exit",| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
| |
| llvm::FunctionCallee
180 | VoidTy,Int8PtrTy);
| ~~~~~~~~~~~~~~~~~~
/home/siv2r/Projects/llvm-project/llvm/lib/Transforms/CDSPass/CDSPass.cpp:203:38: error: cannot convert ‘llvm::FunctionCallee’ to ‘llvm::Constant*’ in assignment
203 | CDSLoad[i] = M.getOrInsertFunction(LoadName,VoidTy,PtrTy);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
| |
| llvm::FunctionCallee
如果可能的话,您还能解释一下如何运行C11Tester的测试文件吗?
祝你有美好的一天!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)