我需要获得完整的Clang警告列表。随着描述。对于iOS。 我在这里看到了一系列警告 Clang Warnings
但没有描述。 是否有任何地方可以获得具有描述的Clang警告的完整列表?
答案 0 :(得分:10)
有一个整洁的项目,显示标志和警告信息:
https://github.com/NSHipster/fuckingclangwarnings.com
http://fuckingclangwarnings.com/
虽然这些并非在所有情况下都是全面的解释,但它非常有用,尤其是当您想要关闭特定警告时。
该项目暂时没有更新,可能会遗漏一些新的警告。您还可以深入了解Clang的源代码。我暂时没有使用它,但我可以告诉你从哪里开始:
1)克隆Clang repository
2)浏览到/include/clang/Basic/Diagnostic.td
。此文件包含其他几个.td
文件,其中包含各种警告,但我不确定它们是否都是公开可用的,我认为它们的外部名称是前缀的,具体取决于它们的类别。我建议搜索一个已知的警告(或其描述)来解决这个难题。
3)另一个有趣的文件是/include/clang/Driver/Options.td
,其中包括使用help
命令获得的文本,如果我没记错的话。
答案 1 :(得分:7)
我意识到这是一个老问题,但可以在Clang Documentation中找到完整的警告列表以及为每个警告打印的文本。
答案 2 :(得分:0)
[当前]接受的答案是正确的。网站上提供的clang / clang ++文档不一定反映代码中受支持的选项。俗话说“源代码就是文档”:/ ..
可以帮助您找到选项的一件事是为DiagGroup
复制源代码。例如,下面的示例演示了使用缩减后的clang 7.0.1源检出对sign-compare
(又名-Wsign-compare
)进行grepping的尝试:
$ grep --include \*.td -r sign-compare . | grep DiagGroup
tools/clang/include/clang/Basic/DiagnosticGroups.td:def SignCompare : DiagGroup<"sign-compare">;