Недавно мы столкнулись со следующей ошибкой компилятора, которая повторялась в разных местах нашей сборки:
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
Мы переместили эти #defines из файла заголовка, в котором они в настоящее время существуют, в файл .c, который был единственным местом, в котором они в настоящее время использовались. Тогда мы больше не видели ошибку компилятора.
Может ли кто-нибудь объяснить, что означают вышеуказанные ошибки компилятора и почему это исправление сработало?
Спасибо,
Райан