https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119504
Bug ID: 119504 Summary: ICE when attempting to access an element of a constant string Product: gcc Version: 15.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: --- Forwarded from the mailing list consider the following code: $ cat WriteOctHex.mod MODULE WriteOctHex; FROM STextIO IMPORT WriteChar, WriteLn; VAR Done : BOOLEAN; PROCEDURE WriteOctOrHex(v: CARDINAL; w: CARDINAL; oh : CARDINAL); CONST MAXCHARS=80; CONST OHstr = "0123456789ABCDEF"; VAR str : ARRAY [0..MAXCHARS] OF CHAR; i,j : CARDINAL; BEGIN Done:=TRUE; i:=0; REPEAT str[i]:=OHstr[v MOD oh]; v:=v DIV oh; INC(i); UNTIL (v=0) OR (i>MAXCHARS); IF (v#0) AND (i>MAXCHARS) THEN Done:=FALSE; RETURN END; IF (w>0) AND (i<w) THEN FOR j:=1 TO w-i DO WriteChar(" "); END; END; FOR j:=i-1 TO 0 BY -1 DO WriteChar(str[j]) END; END WriteOctOrHex; $ gm2 -c WriteOctOrHex.mod cc1gm2: internal compiler error: constant type should have been resolved 0x1615648 diagnostic_context::diagnostic_impl(rich_location*, diagnostic_metadata const*, diagnostic_option_id, char const*, __va_list_tag (*) [1], diagnostic_t) ???:0 0x15e124f internal_error(char const*, ...) ???:0 0x1d96978 m2linemap_internal_error ???:0 0x1eaf416 M2Emit_InternalError ???:0 0x1dc00d0 M2Error_InternalError ???:0 0x1e3c3b2 M2Quads_BuildDesignatorArray ???:0 0x1ea3e21 P3Build_CompilationUnit ???:0 0x1de6574 M2Comp_compile ???:0