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

Reply via email to