将警告"makes pointer from integer without a cast"设置为错误



我正试图将警告"warning:传递'func'的参数1使指针从integer不带强制转换"作为错误,但找不到选项的名称。

我已经尝试了的所有警告

gcc -Q --help=warnings | grep enabled

尝试执行任一操作-Weror=XXXX和列表中的选项名称,

甚至试图禁用警告-WnoXXXX,但无法禁用。

有人知道这个特别警告的选项吗?

我也想知道它,所以我检查了gcc源代码(4.8.1)。在c-typeck.c中,有以下代码发出警告:

WARN_FOR_ASSIGNMENT (location, 0,
G_("passing argument %d of %qE makes "
"pointer from integer without a cast"),
G_("assignment makes pointer from integer "
"without a cast"),
G_("initialization makes pointer from "
"integer without a cast"),
G_("return makes pointer from integer "
"without a cast"));

参见WAIT_FOR_ASSIGNMENT0第二个参数?通常,这是其中一个诊断选项的标志。然而,在这种情况下,它是零,所以我担心这意味着错误不能被明确地定为错误。

如gcc手册所述

-Werror=将指定的警告设置为错误。附加了警告的说明符,例如-Werror=switch将打开警告由-Wswitch控制为错误。该开关采用负形式,用于否定特定警告的-Werror,例如-Wno-error=switch使-Wswitch警告不是错误,即使-Werror有效。您可以使用-fdiagnostics show选项将每个可控警告修改为控制它,以确定与此选项一起使用的内容。

应使用-fdiagnostics show选项开关报告任何支持的选项。

如果你幸运的话,你的gcc版本可能会让你有选择地将警告变成错误。我使用的版本肯定没有,所以也使用

-Weror将所有警告转化为错误。

-迂腐的错误就像迂腐的一样,只是产生了错误而不是警告。

可能是让gcc发出错误的唯一可能性。

最新更新