带有描述的完整 Clang 警告列表

Full Clang warning list with descriptions

我需要获取完整的 Clang 警告列表。带说明。对于 iOS。 我在这里只看到了警告列表 Clang Warnings

但是没有说明。 有什么地方可以让我获得带有描述的 Clang 警告的完整列表?

有一个简洁的项目可以在警告消息旁边显示标志:

https://github.com/NSHipster/fuckingclangwarnings.com

虽然这些解释并非适用于所有情况,但非常有帮助,尤其是当您想要关闭特定警告时。

该项目有一段时间没有更新了,可能缺少一些新的警告。您还可以深入研究 Clang 的源代码。我已经有一段时间没有使用它了,但我可以告诉你从哪里开始:

1) 克隆 Clang repository

2) 浏览至 /include/clang/Basic/Diagnostic.td。该文件包括其他几个 .td 文件,其中包含各种警告,但我不确定是否所有这些文件都是公开的,而且我认为它们的外部名称有前缀,具体取决于它们的类别。我建议搜索一个已知的警告(或其描述)来解决这个难题。

3) 另一个有趣的文件是 /include/clang/Driver/Options.td,如果我没记错的话,它包括你使用 help 命令获得的文本。

我知道这是一个老问题,但是可以在 Clang Documentation.

中找到完整的警告列表以及为每个警告打印的文本

[当前]接受的答案是正确的。 clang/clang++ 网站上的文档不一定反映代码中支持的选项。正如老话所说,"the source code is the documentation" :/..

有助于查找选项的一件事是搜索 DiagGroup 的源代码。例如,以下演示了使用精简的 clang 7.0.1 源代码检出尝试 grepping sign-compare,又名 -Wsign-compare

$ grep --include \*.td -r sign-compare . | grep DiagGroup
tools/clang/include/clang/Basic/DiagnosticGroups.td:def SignCompare : DiagGroup<"sign-compare">;