-mllvm fla error fix
crazy-copy opened this issue · 2 comments
crazy-copy commented
-mllvm fla error fix
crazy-copy commented
对比了一下别处的源码 发现有个小错误 导致不能使用 fla 选项
PreservedAnalyses FlatteningPass::run(Function& F, FunctionAnalysisManager& AM) {
Function *tmp = &F; // 传入的Function
// 判断是否需要开启控制流平坦化
if (toObfuscate(flag, tmp, "fla")) {
// Lower switch
LowerSwitchPass lower;
lower.run(F, AM);
#这里没有返回值导致的错误
if (flatten(F)) {
++Flattened;
}
return PreservedAnalyses::none();
}
return PreservedAnalyses::all();
}
bool FlatteningPass::flatten(Function &F){
...
fixStack(F);
return true; #这里添加返回值 就可以使用fla了
}
DreamSoule commented
感谢