Clang的-Wall和-Wextra中包含哪些警告?
What warnings are included in Clang's -Wall and -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
,查看Most, Parentheses, Switch。你可以找到:
def Most : DiagGroup<"most", [
....
在文件的更下方。类似地,对于extra:
def Extra : DiagGroup<"extra", [
MissingFieldInitializers,
IgnoredQualifiers,
InitializerOverrides,
SemiBeforeMethodBody,
MissingMethodReturnType,
SignCompare,
UnusedParameter
]>;
Clang过去非常不擅长记录可用的内容。虽然从4.0.0版本开始,他们已经修复了这个问题。对于旧版本,可以尝试或查阅源代码。在Github上的编译器警告页面,您可以找到基于源代码的警告摘录。
因此,您可以在文档页面上找到最新标志的文档,以及在其发布页面(4.0.0)上找到特定版本的匹配文档。
Clang-cl
有自己的警告标志,其映射可以在其文档
相关文章:
- 警告处理为错误这里有什么问题
- 禁止显示有关包含文件中 #pragma 包的警告
- 警告C4018,包含int和UINT32,但不包含int和UCHAR
- 对列表类中的泛型方法禁用编译器警告 2100,该泛型方法可能包含指针,也可能不包含指针
- C4838 警告,包含常量字符* 数组的数组初始化
- 我有一个包裹的矢量.我该如何判断它包含哪种类型
- 该代码段在 Colliru 中编译时带有警告,但在 Ideone 中正常编译.哪一个是正确的
- 禁用特定包含文件的警告
- g++:有没有办法警告头文件是否不包含在文件中
- C++:编译器警告 C4505 包含从类模板派生的类的标头
- 我应该使用main.cpp中包含的哪一个(LNK2005已经定义)
- Clang的-Wall和-Wextra中包含哪些警告?
- 编译器警告和错误是如何定义的,它们是否包含在标准中
- 禁止显示特定包含标头的 g++ 警告"-Wliteral-suffix"
- VS2013:如何禁用项目外部包含的头文件的警告
- LNK4006, LNK4221在使用包含其他静态库的静态库时发出警告
- 包含不可复制对象的对象的编译警告是不可读的
- 如何禁用特定包含文件的警告
- Clang(3.6.0)忽略包含头文件中的警告
- 在c++编译器中包含C头文件时发出警告