当使用 gcc 和-Werror=pedantic
编译以下代码时,它将报告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) %zun",
sizeof(enum foo), sizeof(enum bar));
return 0;
}
在我的项目中,我使用了很多第三方开源代码,有些源代码也有上述相同的问题。如果我将-Werror=pedantic
添加到 gcc 选项中,它会导致许多错误。我想检测有关仅对"枚举"类型的转发引用的错误,但没有额外的错误。是否有其他 gcc 选项可以报告此错误?
GCC 版本:arm-none-eabi-gcc v4.9.3
使用没有任何-Werror
-pedantic
。它只会产生警告,但不会停止编译。您可以将所有这些诊断收集到一个日志文件中,然后通过 pinggrep
对其进行分析。例如
% make 2> errors.log
% grep -A 3 "ISO C forbids forward references to 'enum' types" errors.log