评估常量SVal的最简单方法

时间:2018-03-20 17:19:21

标签: c++ clang llvm-clang clang-static-analyzer

我试图找到最简单的方法来获取常量SVal中的值。目前我正在做一些事情:

SVal s = ...; // Get valid SVal from somewhere
int64_t val = 0; // Will hold value of SVal

if (!s.isUnknownOrUndef() && s.isConstant()) {
    switch (s.getBaseKind()) {
        case NonLocKind: {
            s_val = s.getAs<nonloc::ConcreteInt>().getValue();
            val = s_val.getValue().getExtValue();
         }
         // handle other cases
         //   ...
    }
}

llvm::outs() << "Value is " << val << "\n";

我没有在这里显示它,但有更多的代码检查值已知,检查常量的符号和类型等。我觉得可能有更好的方法。

0 个答案:

没有答案