哪个 Clang 警告等同于 GCC 的 Wzero-as-null-pointer-constant?

Which Clang warning is equivalent to Wzero-as-null-pointer-constant from GCC?

我们的项目使用 C++11/14,我们希望使用 nullptr 而不是带指针的 0NULL,即使 0(如整数文字)是允许的。

我有以下代码:

int main()
{
    int *ptr1 = nullptr; // #1
    int *ptr2 = 0;       // #2
}

如果我使用 GCC (5.3.0) 和标志 -Wzero-as-null-pointer-constant 进行编译,它会在 #2 中发出警告,但我在 Clang 中找不到类似的标志。如果我使用 Clang (3.7.1) 和标志 -Weverything 编译代码,我不会收到任何关于 #2.

的警告

那么,有什么方法可以在 Clang 中得到类似的警告吗?

Clang 不支持此类警告(即,Clang 中没有 -Wzero-as-null-pointer-constant 等效项)。如果您添加 -Weverything 选项(介意仅用于测试),您可以自己看到它,这会启用所有 Clang 的警告。

Live Demo

clang 从 5.0 开始有这个警告;我加了here.