<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/137326>137326</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
use TargetIRAnalysis or any analysis crash ??
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ductai230894
</td>
</tr>
</table>
<pre>
hello every body, current I develop plugin of llvm
but when plugin run
when I get result of TargetIRAnalysis from FunctionAnalysisManager, it always crash
error
Exception has occurred: W32/0xC0000005
opt.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
this is my minimize code
PreservedAnalyses MySamplePass::run(Function &F,
FunctionAnalysisManager &AM)
{
if (F.isDeclaration() || F.empty())
return PreservedAnalyses::all();
llvm::errs() << "[Debug] FAM address: " << &AM << "\n";
if (!F.getParent()) {
llvm::errs() << "[Error] Function has no parent Module!\n";
llvm::errs() << "[Debug] FAM address: " << &AM << "\n";
return PreservedAnalyses::all(); // or handle error
}
const DataLayout &DL = F.getParent()->getDataLayout();
if (DL.isDefault()) {
llvm::errs() << "[Error] Function's Module has no valid DataLayout!\n";
llvm::errs() << "[Debug] FAM address: " << &AM << "\n";
return PreservedAnalyses::all();; // or handle error
}
AM.getResult<TargetIRAnalysis>(F); //it crash
}
I already add TargetIRAnalysis
extern "C" LLVM_ATTRIBUTE_WEAK ::llvm::PassPluginLibraryInfo llvmGetPassPluginInfo() {
return {
LLVM_PLUGIN_API_VERSION,
"LLvmObfuscator",
"v1.0",
[](llvm::PassBuilder &PB) {
// ✅ Register required analyses
PB.registerAnalysisRegistrationCallback(
[](FunctionAnalysisManager &FAM) {
FAM.registerPass([] { return AssumptionAnalysis(); });
FAM.registerPass([] { return DominatorTreeAnalysis(); });
FAM.registerPass([] { return LazyValueAnalysis(); });
FAM.registerPass([] {
return TargetIRAnalysis([](const Function &F) {
return TargetIRAnalysis::Result(F.getDataLayout());
});
});
});
registerObfuscatorPasses(PB);
}
};
}
can any else help me
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVk2T2jgT_jXi0hXKyDA2Bx-MjVPUCwk1mSTHKdlujN6VLVaSmXF-_ZZkPMB8ZGe3slurC9Ct_nq69TRMa141iBGZLcgsHbHW7KWKyrYwjFPfC-fTUS7LLtqjEBLwiKoDKyA0gaJVChsDKyjxiEIe4CDaijcgdyDEsSZenLcGHvbYDBrVNsSLiRc74QoqNKBQt8JYozumKjSr27hhotNcA-yUrCFrm8Jw2QziDWtYhcqmwA0w8cA6DYVieg-9c1RKKvt9-VjgwZrCnmmQhcu4JH4M331KaOY9Jp47M-LF8mDG-IhWeyH3Y4iLArWGI5eCOWcKWcmbCoQseoH36D074z4Ts-cauIa6g5o3vOY_EApZYq_dKtSojlj2laGGTfeF1QeBW6Y18WPixxYxGg4QAKE3GaEJ8WJ413kDO-sn3hA6t4kEC-eO78BGGnOdYiGYcqURGhI6BxIkJEggG2N9MF0v7K1tEIWmVQ28KKevgAlxMvD7QG42nAqV0kMEPyF-AoRSMlukmLcVmaWQxRtgZanQwWG154s38ebKKmnsh39ZDKGTbFyh2TI7qE9pw1Dye3JZ2mFyuQw9sLPUSDg4p7CRZSuQ0MmzDP6dOv8K-EBoRmgGUsGeNaVAcA_FjUDaT2QhG20gZYatWSdbY8OnayB-Ci-A_ED8ZYXmfPmyyz3-6dpN04614lehT2igT5gPjTgywUu4zOO_34t3tAMg3ljMbx0_Ej95To_EX9oHe9VcbnomvGzqCpiwlNXZsl4hWcuU-GhQWXqhiS14vf62uY_v7m5Xi693y_vvy_h_0BdxBtJy1NbR-prniqlu1eykA_qjHZRBaaVPLPIMqLPAHhd0u_76cfXpPt6u7r8tb7-sPn-6pjtC6Xp9rD_nu1YXzEhlG_D8xnEy9l7K3YojNLwuYdFyUfaMuF1cZ3n26BpFlpTMExLO4BYrrg0qUPh7yxWWwIZOX1tuF2N1ujvg3dv27JowIXJW_GbxecnoTwn_hMQzx-KnnF_dCm-siizePKXmtg0N-3jW19CfWOu2PlyGviCTIL3g9L8ZIJU1b2wX7xTiPxRjzX5035hof7n_txDvzyn6i0c7uCA07Nn22W5_bQDf69sN9Ykv7Cp_jZ5_Vq89f4bJ1YXXpvYN-wHH88u1iKIFxL27a4uBAvtvfaynJcUaYE0HKDTCHsUBarTNGJWRX879ORthNAmms1l444XT0T4qyllZ7IJ8Qr3wJvQmtAxCDPIJ4m4yz8v5iEfUozNvSmcT35vQ6Tjc3QThnIXoT-eBR-dk6mHNuBhb7hhLVY241i1GEz_w6c1IsByFdn-iKW3wAZzWbYh0pCJr9CFvK02mnuDa6LMbw43AqNX4kpelclWy4ffpH66fET8btUpEe2MOrueOnipu9m0-LmRNaOYorv_4cFDy_1gYuxxsVprQ7JT2MaJ_BAAA__-0LGSl">