【发布时间】:2020-12-30 15:23:39
【问题描述】:
我想修改代码分析程序clang-tidy正在做的检查,但配置文件.clang-tidy的内容似乎被忽略了。
- 我通过使用标志
-dump-config调用clang-tidy创建文件并将输出重定向到文件.clang-tidy。 - 然后我调用
sed将值800替换为值700,对应于带有键google-readability-function-size.StatementThreshold的选项。具体的选项对我来说并不重要,这只是为了测试。 - 我确认该值确实已更改。
- 最后,我重新运行
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