ข้อผิดพลาดภายในนี้ในคอมไพเลอร์ GNU สําหรับโปรเซสเซอร์ Nios® สร้างข้อความคอมไพเลอร์ที่คล้ายกับต่อไปนี้:
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: ข้อผิดพลาดคอมไพเลอร์ภายในใน 'nios_output_memory_access' ที่ config/nios/nios.c:2540
โปรดส่งรายงานข้อผิดพลาดฉบับเต็ม
ดู สําหรับคําแนะนํา
เสียชีวิตที่ - บรรทัดที่ 85
การแก้ไขปัญหานี้คือการลดขนาดของตัวแปรท้องถิ่นที่ต่ํากว่าขีดจํากัด 1024 คํา โดยการทําเช่นนี้ ให้ใช้กิจวัตร Alloca() เมื่อประกาศตัวแปรโลคัสขนาดใหญ่
ตัวอย่างเช่น แทนที่จะเป็นการรายงานภาษีต่อไปนี้
char dummy_string[buffer_length]
ใช้คําประกาศนี้:
char* dummy_string = alloca(buffer_length);