CFG是Clang工具进行高级静态分析的基本数据结构。Clang从其AST为函数构建CFG,识别基本块和控制流边。Clang的CFG构建处理各种C/C++构造,包括循环、条件语句、switch案例,以及setjmp/longjmp和C++异常等复杂构造。考虑使用图6.1的示例来研究这个过程。 图6.1的示例具有五个节点,如图6.2所示。我们将使用调试器来调查该过程: $ $ lldb \ /llvm-project/install/bin/clang-tidy – -checks="-\,misc-cyclomaticcomplexity" -config="CheckOptions: \[key: misc-cyclomaticcomplexity.