我发现Clang的文档很差。我找不到很多可用的Clang警告标志列表。我特别感兴趣的是C / C ++警告,但这是一个普遍的问题。
GCC列出并描述了警告,并列出了-Wall和-Wextra中包含的内容: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
Clang的-Wall和-Wextra包含哪些警告标志?
我可以为每个版本搜索Clang发行说明以查看每次引入的新警告标记(例如http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html),但是是否更容易列出和/或描述Clang的警告?< / strong>这将非常有用。我需要知道-Wall包含哪些内容,哪些不包含,所以我可以考虑启用那些不包含的内容。
(我知道 - Clang的存在 - 我可能不得不求助于使用它而只是明确禁用我不喜欢的那些吗?更多文档会使这更理想。)
答案 0 :(得分:10)
例如,
def : DiagGroup<"all", [Most, Parentheses, Switch]>;
// Warnings enabled by -pedantic. This is magically filled in by TableGen.
def Pedantic : DiagGroup<"pedantic">;
// Aliases.
def : DiagGroup<"", [Extra]>; // -W = -Wextra
对于-Wall
,请查看最多,括号,切换。你可以找到:
def Most : DiagGroup<"most", [
....
进一步向下文件。同样,额外的:
def Extra : DiagGroup<"extra", [
MissingFieldInitializers,
IgnoredQualifiers,
InitializerOverrides,
SemiBeforeMethodBody,
MissingMethodReturnType,
SignCompare,
UnusedParameter
]>;
答案 1 :(得分:3)
Clang过去在记录可用内容时非常糟糕。 虽然从4.0.0版本开始,但它们已经修复了它。对于旧版本,可以尝试或查阅源代码。在the compiler-warnings page on Github,您可以根据源代码找到警告的摘录。
因此,您可以在the documentation pages找到有关最新标记的文档,以及release pages (4.0.0)上特定版本的匹配文档。
Clang-cl
有自己的警告标志,其映射可以在documentation