在LLVM 5.0.1中使用AaresultsRapperPass时出现分段错误
我正在尝试使用AliasAnalysis(LLVM 5.01),代码如下:在LLVM 5.0.1中使用AaresultsRapperPass时出现分段错误,llvm,Llvm,我正在尝试使用AliasAnalysis(LLVM 5.01),代码如下: void getAnalysisUsage(AnalysisUsage &AU) const override { AU.addRequired<AAResultsWrapperPass>(); } 有人建议将当前函数作为参数传递给此函数以解决此问题() getAnalysis().getAAResults()-不工作 getAnalysis().getAAResults(F)-正在工作 然而
void getAnalysisUsage(AnalysisUsage &AU) const override {
AU.addRequired<AAResultsWrapperPass>();
}
有人建议将当前函数作为参数传递给此函数以解决此问题()
getAnalysis().getAAResults()-不工作
getAnalysis().getAAResults(F)-正在工作
然而,他的方法对我不起作用。如何处理此问题?尝试调用函数作为参数的
getAnalysis
,即
getAnalysis<AAResultsWrapperPass>(F).getAAResults();
getAnalysis(F).getAAResults();
clang -Xclang -load -Xclang /home/zhangjun/tools/llvm/llvm-build/lib/LLVMCPI.so -O0 -c test.c
Pass 'Unnamed pass: implement Pass::getPassName()' is not initialized.
Verify if there is a pass dependency cycle.
Required Passes:clang-5.0: /home/zhangjun/tools/llvm/llvm/lib/IR/LegacyPassManager.cpp:653: void llvm::PMTopLevelManager::schedulePass(llvm::Pass*): Assertion `PI && "Expected required passes to be initialized"' failed.
#0 0x0000000002dae43f llvm::sys::PrintStackTrace(llvm::raw_ostream&) /home/zhangjun/tools/llvm/llvm/lib/Support/Unix/Signals.inc:398:0
#1 0x0000000002dae4d0 PrintStackTraceSignalHandler(void*) /home/zhangjun/tools/llvm/llvm/lib/Support/Unix/Signals.inc:462:0
#2 0x0000000002dac916 llvm::sys::RunSignalHandlers() /home/zhangjun/tools/llvm/llvm/lib/Support/Signals.cpp:49:0
#3 0x0000000002daddd7 SignalHandler(int) /home/zhangjun/tools/llvm/llvm/lib/Support/Unix/Signals.inc:252:0
getAnalysis<AAResultsWrapperPass>().getAAResults() - NOT working
getAnalysis<AAResultsWrapperPass>().getAAResults(F)- working
getAnalysis<AAResultsWrapperPass>(F).getAAResults();