首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么原因导致“左而不入”GCC编译器错误?

是什么原因导致“左而不入”GCC编译器错误?
EN

Stack Overflow用户
提问于 2009-12-05 17:20:48
回答 1查看 772关注 0票数 2

最近,我们在构建过程中遇到了在不同位置重复的以下编译器错误:

代码语言:javascript
复制
line-map.c: file "<a source_file name>" left but not entered

在构建的不同点,源文件是不同的。一段时间后,编译器最终抛出以下错误:

代码语言:javascript
复制
<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引起的:

代码语言:javascript
复制
#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文件中,这是当前使用它们的唯一位置。然后,我们再也没有看到编译器错误了。

有人能解释一下上面的编译器错误意味着什么,以及为什么这个修复会起作用吗?

谢谢,莱恩

EN

回答 1

Stack Overflow用户

发布于 2009-12-05 18:18:59

当你得到一个ICE (内部编译错误),这意味着GCC的内部是混乱的。不是因为您的代码,而是因为GCC代码中的一个bug,它是由断言检测到的。

避免错误的代码中的更改可能没有意义。

接下来的步骤是:

  • 最新更新GCC (4.4.2),以检查洲际交易所是否已修复。
  • 如果不是,减少您的代码--生成ICE的最小代码
  • 为ICE创建一个错误报告
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1852788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档