https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120606
Bug ID: 120606 Summary: FOR loop ICE if the last expression uses an array Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: modula2 Assignee: gaius at gcc dot gnu.org Reporter: gaius at gcc dot gnu.org Target Milestone: --- Reproduced from the gm2 mailing list: $ gm2 -c forarray.mod In function ‘Init’: cc1gm2: internal compiler error: in build2, at tree.cc:5206 0x37cc135 internal_error(char const*, ...) ../../gcc/diagnostic-global-context.cc:517 0x378c6b8 fancy_abort(char const*, int, char const*) ../../gcc/diagnostic.cc:1803 0x1cf0f1b build2(tree_code, tree_node*, tree_node*, tree_node*) ../../gcc/tree.cc:5206 0xec8d59 build_binary_op(unsigned long, tree_code, tree_node*, tree_node*, int) ../../gcc/m2/gm2-gcc/m2expr.cc:1118 0xecc1e4 m2expr_build_binary_op_check ../../gcc/m2/gm2-gcc/m2expr.cc:2623 0xecc2a1 m2expr_build_binary_op ../../gcc/m2/gm2-gcc/m2expr.cc:2639 0xecc672 m2expr_BuildMult ../../gcc/m2/gm2-gcc/m2expr.cc:2724 0xf1efd7 PerformLastForIterator m2/gm2-compiler-boot/M2GenGCC.c:2019 0xf1ecb1 CodeLastForIterator m2/gm2-compiler-boot/M2GenGCC.c:1926 0xf1f555 CodeStatement m2/gm2-compiler-boot/M2GenGCC.c:2250 0xf2f149 M2GenGCC_ConvertQuadsToTree m2/gm2-compiler-boot/M2GenGCC.c:9836 0xf65e68 M2Scope_ForeachScopeBlockDo2 m2/gm2-compiler-boot/M2Scope.c:671 0xf0c285 M2Code_CodeBlock m2/gm2-compiler-boot/M2Code.c:510 0xef5397 Lists_ForeachItemInListDo m2/gm2-compiler-boot/Lists.c:391 0xf86f27 SymbolTable_ForeachProcedureDo m2/gm2-compiler-boot/SymbolTable.c:15431 0xf0c319 M2Code_CodeBlock m2/gm2-compiler-boot/M2Code.c:542 0xf0bcb1 DoCodeBlock m2/gm2-compiler-boot/M2Code.c:294 $ cat forarray.mod module forarray ; var array: array [0..10] of integer ; procedure Init ; var i, n: cardinal ; begin array[0] := 10 ; n := 0 ; for i := 1 to array[n] do end end Init ; begin Init end forarray.