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