Nios® 处理器的 GNU 编译器中的此内部错误生成与以下类似的编译器消息:
arche_ds_01.c:在功能"dispatch"中:
arche_ds_01.c:876:st/st8d/st16d 的偏移量必须在 -1024 到 1023 之间:
(insn 106 1749 107(设置 (mem:QI (plus:SI (reg:SI 16 %l0)
(const_int -13476 [0xffffcb5c])0)
(reg:QI 2 %g2))1 {*movqi_internal} (nil)
(expr_list:REG_DEAD (reg:QI 2 %g2)
(expr_list:REG_DEAD (reg:SI 16 %l0)
(nil)))
arche_ds_01.c:876:config/nios/nios.c:2540 上的"nios_output_memory_access"内部编译器错误
请提交一份完整的错误报告。
有关说明,请参阅 。
在行 85 处激活。
解决方法是将本地变量的大小降低到 1024 字限制以下。 要做到这一点,在声明大型本地变量时,使用 alloca() 例程。
例如,而不是以下声明
char dummy_string[buffer_length];
使用此声明:
char* dummy_string = alloca(buffer_length);