https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117120

            Bug ID: 117120
           Summary: case ch with a nul char constant causes ICE
           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: ---

Consider the following code:

$ cat test.mod
MODULE test;
FROM STextIO IMPORT WriteString;
VAR
   ch: CHAR;
BEGIN
   ch := '';
   CASE ch OF

   '' : WriteString("") |
   '1': WriteString("1")

   ELSE
   END
END test.

$ gm2 -g test.mod 
cc1gm2: internal compiler error: tree check: expected integer_cst, have
string_cst in get_len, at tree.h:6509
0x2e3c9a9 internal_error(char const*, ...)
        ../../gcc/diagnostic-global-context.cc:517
0x1295fe1 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/tree.cc:9003
0x411175 tree_check(tree_node const*, char const*, int, char const*, tree_code)
        ../../gcc/tree.h:3921
0x43226a wi::extended_tree<131072>::get_len() const
        ../../gcc/tree.h:6509
0x4321ba wi::int_traits<generic_wide_int<wi::extended_tree<131072> >
>::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<131072> >
const&)
        ../../gcc/wide-int.h:1050
0x432018 wide_int_ref_storage<true,
false>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<131072> >
>(generic_wide_int<wi::extended_tree<131072> > const&, unsigned int)
        ../../gcc/wide-int.h:1099
0x431b86 generic_wide_int<wide_int_ref_storage<true, false>
>::generic_wide_int<generic_wide_int<wi::extended_tree<131072> >
>(generic_wide_int<wi::extended_tree<131072> > const&, unsigned int)
        ../../gcc/wide-int.h:855
0x43159a int wi::cmps<generic_wide_int<wi::extended_tree<131072> >,
generic_wide_int<wi::extended_tree<131072> >
>(generic_wide_int<wi::extended_tree<131072> > const&,
generic_wide_int<wi::extended_tree<131072> > const&)
        ../../gcc/wide-int.h:2447
0x431508 tree_int_cst_compare(tree_node const*, tree_node const*)
        ../../gcc/tree.h:6694
0x4270eb m2expr_CompareTrees
        ../../gcc/m2/gm2-gcc/m2expr.cc:86
0x4f5f75 M2Range_OverlapsRange
        ../../gcc/m2/gm2-compiler/M2Range.mod:163
0x471fbe Overlaps
        ../../gcc/m2/gm2-compiler/M2CaseList.mod:390
0x472799 OverlappingCaseBound
        ../../gcc/m2/gm2-compiler/M2CaseList.mod:464
0x471871 M2CaseList_OverlappingCaseBounds
        ../../gcc/m2/gm2-compiler/M2CaseList.mod:500
0x4fa4be FoldCaseBounds
        ../../gcc/m2/gm2-compiler/M2Range.mod:2086
0x4f4b0f M2Range_FoldRangeCheck
        ../../gcc/m2/gm2-compiler/M2Range.mod:2312
0x49cb47 FoldRange
        ../../gcc/m2/gm2-compiler/M2GenGCC.mod:895
0x49b041 M2GenGCC_ResolveConstantExpressions
        ../../gcc/m2/gm2-compiler/M2GenGCC.mod:651
0x486fea M2GCCDeclare_FoldConstants
        ../../gcc/m2/gm2-compiler/M2GCCDeclare.mod:2643
0x46ea48 M2BasicBlock_ForeachBasicBlockDo
        ../../gcc/m2/gm2-compiler/M2BasicBlock.mod:282
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to