我试图使用Clang的AST检查目标C中CallExpr的输入参数是否为null / nil
我看到有一个方法isNullPointerConstant()似乎会做我想做的事情http://clang.llvm.org/doxygen/classclang_1_1Expr.html#ab56d6fd074c831a3e63b45f4f226b35a
但是,我不确定如何调用此方法。具体来说,它所采用的NullPointerConstantValue依赖是什么以及返回的NullPointerConstantKind是什么?
我需要做的只是评估参数是否为null,布尔返回值可以正常工作。我还有其他方法可以看吗?
答案 0 :(得分:0)
这最终对我有用
Expr::NullPointerConstantKind kind = expr->isNullPointerConstant(*Context, Expr::NullPointerConstantValueDependence());
如果是好的> 0表示存在某种形式的空指针,可以检索它以查看其原因。