使用gcc返回NULL时没有警告

dam*_*dan 6 c null gcc warnings gcc5.2

使用gcc5.2.0,我注意到这段代码没有生成警告:

#include <stddef.h>

int function(void)
{
    return NULL;
}

void procedure(void)
{
    return NULL;
}
Run Code Online (Sandbox Code Playgroud)

我使用了旗帜-Wall -Wextra -std=c99 -pedantic,我正在运行archlinux.我不确定为什么这段代码可以正常工作gcc,特别是因为clang3.7.0会产生警告.

我也尝试使用gcc类似4.9或4.7的旧版本,它们都会产生警告.

警告是:

warning: return makes integer from pointer without a cast
Run Code Online (Sandbox Code Playgroud)

warning: ‘return’ with a value, in function returning void
Run Code Online (Sandbox Code Playgroud)

我应该提一下,我尝试在Debian上编译gcc 5.2,结果是一样的.所以archlinux似乎不是问题所在.

理由是什么?我似乎无法在其他任何地方找到与此相关的任何内容.

谢谢!

dam*_*dan 1

我在这里填写了错误报告:https://gcc.gnu.org/bugzilla/show_bug.cgi ?id=67730

它已被确认,并且似乎已在 5.3 中修复!

感谢您的帮助。