【问题标题】:.clang-tidy configuration file content is being ignored.clang-tidy 配置文件内容被忽略
【发布时间】:2020-12-30 15:23:39
【问题描述】:

我想修改代码分析程序clang-tidy正在做的检查,但配置文件.clang-tidy的内容似乎被忽略了。

  1. 我通过使用标志-dump-config 调用clang-tidy 创建文件并将输出重定向到文件.clang-tidy
  2. 然后我调用sed 将值800 替换为值700,对应于带有键google-readability-function-size.StatementThreshold 的选项。具体的选项对我来说并不重要,这只是为了测试。
  3. 我确认该值确实已更改。
  4. 最后,我重新运行clang-tidy,看看它是否接受了新的配置,但仍然没有改变。
# generate config
clang-tidy -dump-config > .clang-tidy
# change config
sed -i 's/800/700/' .clang-tidy
# verify change
grep '700' .clang-tidy
# use config, does not work
clang-tidy -config '' -dump-config

CheckOption 保持默认值,配置文件内容已被忽略:

CheckOptions:
# some lines omitted for brevity
  - key:             google-readability-function-size.StatementThreshold
    value:           '800'

运行clang-tidy -config '' -dump-config -explain-config 表明至少已找到配置文件,即在检测到的配置文件中启用了许多clang-analyzer 特定检查,但检查google-readability-function-size.StatementThreshold 未列出。

我也尝试使用命令clang-tidy -config="{CheckOptions: [ {key: google-readability-function-size.StatementThreshold, value: 700} ]}" -dump-config 直接将配置作为命令行参数传递,但得到了相同的结果。

命令clang-tidy --version 给出以下输出,在 Ubuntu 20.04 上运行:

LLVM (http://llvm.org/):
  LLVM version 10.0.0
  
  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: haswell

【问题讨论】:

    标签: clang clang-tidy


    【解决方案1】:

    要查看更改,您需要启用检查:

    Checks:          'google-readability-function-size'
    

    你可以看到它在有效配置中发生了变化:

    clang-tidy --dump-config
    

    另一个需要注意的陷阱是解析值的错误将被静默丢弃。

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 2020-07-20
      • 2019-04-01
      • 2022-11-03
      • 2018-10-25
      相关资源
      最近更新 更多