使用带有-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
答案 0 :(得分:1)
使用-pedantic
而不使用任何-Werror
。它只会产生一个警告,但不会停止编译。您可以将所有这些诊断收集到日志文件中,然后通过grep
ping进行分析。例如
% make 2> errors.log
% grep -A 3 "ISO C forbids forward references to 'enum' types" errors.log