Clang的-Wall和-Wextra中包含哪些警告?

我发现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的警告? 这将非常有用。 我需要知道-Wall中包含的内容和不包含的内容,因此我可以考虑启用那些不包含的内容。

(我知道 – Clang的存在 – 我可能不得不求助于使用它而只是明确禁用我不喜欢的那些吗?更多文档会使这更理想。)

您可以查看源代码 :

例如,

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 ]>; 

Clang过去在记录可用内容时非常糟糕。 虽然从4.0.0版开始,但他们已经修复了它。 对于旧版本,可以尝试或查阅源代码。 在Github上的compiler-warnings页面,您可以找到基于源代码的警告摘录。

因此,您可以在文档页面上找到有关最新标志的文档 ,以及在其发行页面(4.0.0)上的特定发行版的匹配文档。

Clang-cl有自己的警告标志,其映射可以在其文档中找到