发出警告“从没有强制转换的整数生成指针”作为错误

时间:2012-10-01 17:28:09

标签: gcc gcc-warning

我正在尝试发出警告“警告:传递'func'的参数1使指针从整数而不是强制转换”作为错误,但无法找到该选项的名称。

我已尝试过来自

的所有警告
gcc -Q --help=warnings | grep enabled

尝试执行-Werror = XXXX和列表中选项的名称,

甚至尝试禁用警告-Wno-XXXX,但无法禁用。

是否有人知道此特定警告的选项?

2 个答案:

答案 0 :(得分:2)

我也想知道它,所以我检查了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"));

请参阅0的{​​{1}}第二个参数?通常,这是其中一个诊断选项的标志。但是,在这种情况下,它为零,所以我担心这意味着错误不会被特别错误。

答案 1 :(得分:0)

正如gcc手册所述

  

-Werror =将指定的警告变为错误。附加警告的说明符,例如-Werror = switch转动警告   由-Wswitch控制成错误。此开关采用否定形式,   例如,用于否定特定警告的错误   -Wno-error = switch使-Wswitch警告不是错误,即使-Werror生效也是如此。您可以使用-fdiagnostics-show-option选项使用选项修改每个可控警告   控制它,以确定该选项使用什么。

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

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

  

-Werror       将所有警告变为错误。

  

-pedantic-错误       像-pedantic一样,除了产生错误而不是警告。

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