https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106444
Bug ID: 106444 Summary: vrange_printer::visit ICEs Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- For the testcase in PR105651 I see with -fdump-tree-all: t.C: In function ‘std::string f()’: t.C:3:13: internal compiler error: tree check: expected integer_cst, have addr_expr in to_wide, at tree.h:6205 3 | bool test(std::array<int8_t, 8>& a, std::array<int8_t, 8>& b) | ^ 0x1cd3d8d tree_check_failed(tree_node const*, char const*, int, char const*, ...) /space/rguenther/src/gcc/gcc/tree.cc:8817 0xbb7be1 tree_check(tree_node const*, char const*, int, char const*, tree_code) /space/rguenther/src/gcc/gcc/tree.h:3764 0xc5235a wi::to_wide(tree_node const*) /space/rguenther/src/gcc/gcc/tree.h:6205 0x1d0ab22 irange::legacy_upper_bound(unsigned int) const /space/rguenther/src/gcc/gcc/value-range.cc:875 0x112a26d irange::upper_bound(unsigned int) const /space/rguenther/src/gcc/gcc/value-range.h:935 0x1d1bd9d vrange_printer::visit(irange const&) const /space/rguenther/src/gcc/gcc/value-range-pretty-print.cc:69 0x1d08349 irange::accept(vrange_visitor const&) const /space/rguenther/src/gcc/gcc/value-range.cc:37 0x1d088d0 vrange::dump(_IO_FILE*) const /space/rguenther/src/gcc/gcc/value-range.cc:227 0x1d1b730 value_range_equiv::dump(_IO_FILE*) const /space/rguenther/src/gcc/gcc/value-range-equiv.cc:287 0x1d1b8b1 dump_value_range(_IO_FILE*, value_range_equiv const*) /space/rguenther/src/gcc/gcc/value-range-equiv.cc:317 0x1d7ec2a vr_values::dump(_IO_FILE*) /space/rguenther/src/gcc/gcc/vr-values.cc:1861 0x1cafed6 vrp_prop::finalize() /space/rguenther/src/gcc/gcc/tree-vrp.cc:4005 0x1cb0618 execute_vrp /space/rguenther/src/gcc/gcc/tree-vrp.cc:4218 0x1cb0aef execute /space/rguenther/src/gcc/gcc/tree-vrp.cc:4433 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. that's because vrange_printer::visit doesn't handle symbolic ranges.