用于检测“对'枚举'类型的前向引用”的gcc选项

时间:2017-08-24 04:28:16

标签: c gcc enums

使用带有-Werror=pedantic的gcc编译以下代码时,它会报告error: ISO C forbids forward references to 'enum' types [-Werror=pedantic]

enum foo foo_test(void);

enum foo {
    FOO_0
};

enum bar {
    BAR_0
};

int main(int argc, char **argv)
{
    printf("sizeof(enum foo) %zu, sizeof(enum bar) %zu\n",
           sizeof(enum foo), sizeof(enum bar));
    return 0;
}

在我的项目中,我使用了许多第三方开源代码,并且一些源代码具有与上述相同的问题。如果我将-Werror=pedantic添加到gcc选项,则会导致许多错误。我想检测仅对'enum'类型的前向引用的错误,但没有额外的错误。是否有另一个gcc选项可以报告此错误?

gcc版本:arm-none-eabi-gcc v4.9.3

1 个答案:

答案 0 :(得分:1)

使用-pedantic而不使用任何-Werror。它只会产生一个警告,但不会停止编译。您可以将所有这些诊断收集到日志文件中,然后通过grep ping进行分析。例如

% make 2> errors.log
% grep -A 3 "ISO C forbids forward references to 'enum' types" errors.log