https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99296
Bug ID: 99296 Summary: ICE:in irange_set_anti_range, at value-range.cc:205 with "-Os -fno-toplevel-reorder -fno-tree-bit-ccp" Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: suochenyao at 163 dot com Target Milestone: --- ******************************************************************************* OS and Platform: CentOS Linux release 7.8.2003 (Core), x86_64 GNU/Linux ******************************************************************************* Program: struct { signed a : 1; } b, c; void d() { b.a |= c.a |= 0 != 2; } int main() {} ******************************************************************************* gcc version: $ gcc --version gcc (GCC) 11.0.1 20210226 (experimental) Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ******************************************************************************* Command Lines: $ gcc -Wall -Wextra -fno-strict-aliasing -fwrapv -Os -fno-toplevel-reorder -fno-tree-bit-ccp a.c during GIMPLE pass: evrp a.c: In function ādā: a.c:5:1: internal compiler error: in irange_set_anti_range, at value-range.cc:205 5 | int main() {} | ^~~ 0x7714e6 irange::irange_set_anti_range(tree_node*, tree_node*) ../../gcc/value-range.cc:205 0x18ff2ea irange::set_nonzero(tree_node*) ../../gcc/value-range.h:557 0x18ff2ea wi_optimize_and_or ../../gcc/range-op.cc:2204 0x1900620 operator_bitwise_or::wi_fold(irange&, tree_node*, generic_wide_int<wide_int_storage> const&, generic_wide_int<wide_int_storage> const&, generic_wide_int<wide_int_storage> const&, generic_wide_int<wide_int_storage> const&) const ../../gcc/range-op.cc:2510 0x18f6897 range_operator::fold_range(irange&, tree_node*, irange const&, irange const&) const ../../gcc/range-op.cc:153 0x17ff999 gimple_range_fold(irange&, gimple const*, irange const&, irange const&) ../../gcc/gimple-range.cc:220 0x1803501 gimple_ranger::range_of_range_op(irange&, gimple*) ../../gcc/gimple-range.cc:444 0x18035c8 gimple_ranger::calc_stmt(irange&, gimple*, tree_node*) ../../gcc/gimple-range.cc:374 0x180398a gimple_ranger::range_of_stmt(irange&, gimple*, tree_node*) ../../gcc/gimple-range.cc:1068 0x17ff828 gimple_ranger::range_of_expr(irange&, tree_node*, gimple*) ../../gcc/gimple-range.cc:960 0x10fae61 range_query::value_of_expr(tree_node*, gimple*) ../../gcc/value-query.cc:86 0x180de81 hybrid_folder::value_of_expr(tree_node*, gimple*) ../../gcc/gimple-ssa-evrp.c:235 0xfa9966 substitute_and_fold_dom_walker::before_dom_children(basic_block_def*) ../../gcc/tree-ssa-propagate.c:1112 0x17d6197 dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:309 0xfa8b95 substitute_and_fold_engine::substitute_and_fold(basic_block_def*) ../../gcc/tree-ssa-propagate.c:1283 0x180daf6 execute_early_vrp ../../gcc/gimple-ssa-evrp.c:349 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.