最近,我们在构建过程中遇到了在不同位置重复的以下编译器错误:
line-map.c: file "<a source_file name>" left but not entered在构建的不同点,源文件是不同的。一段时间后,编译器最终抛出以下错误:
<header file>: In function `<function name that is not present within the given header file>':
<same header file>:-117020: internal compiler error: in final_scan_insn, at final.c:1790经过大量调查,我们发现这个错误是由一个不同的头文件中的某个#defines引起的:
#define GEOGRAPHIC_LOC_TYPE_CGI 0
#define GEOGRAPHIC_LOC_TYPE_SAI 1
#define GEOGRAPHIC_LOC_TYPE_RAI 2
#define GEOGRAPHIC_LOC_TYPE_TAI 128
#define GEOGRAPHIC_LOC_TYPE_ECGI 129
#define GEOGRAPHIC_LOC_TYPE_TAI_AND_ECGI 130我们将这些#定义从当前存在的头文件移到.c文件中,这是当前使用它们的唯一位置。然后,我们再也没有看到编译器错误了。
有人能解释一下上面的编译器错误意味着什么,以及为什么这个修复会起作用吗?
谢谢,莱恩
发布于 2009-12-05 18:18:59
当你得到一个ICE (内部编译错误),这意味着GCC的内部是混乱的。不是因为您的代码,而是因为GCC代码中的一个bug,它是由断言检测到的。
避免错误的代码中的更改可能没有意义。
接下来的步骤是:
https://stackoverflow.com/questions/1852788
复制相似问题