迭代Clang静态分析器中的约束



我正在开发一个Clang静态分析器。在这个分析器中,我需要迭代RangedConstraintManager中的约束,但似乎这个类不是公共的,我不能调用它的方法也不能访问它的变量。

有没有办法绕过这个问题?

我目前的解决方案是使用ConstraintManager类的printJson方法打印约束,并使用其输出在一个与Clang源代码分离的程序中实现我的分析仪的逻辑。但是,如果我能在Clang源代码中实现分析器,那就更好了。(例如,以后为LLVM项目做贡献)

您可以尝试使用getConstraintMap(ProgramStateRef State)来获取键为SymbolRef和值为RangeSet的约束映射。你可以尝试迭代这个映射

最新更新