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.