C - 用于检测"forward references to ‘enum’ types"的 GCC 选项



当使用 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

相关内容

  • 没有找到相关文章

最新更新