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

            Bug ID: 88274
           Summary: ICE in check, at tree-vrp.c:188
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: powerpc-*-linux-gnu, powerpcspe-*-linux-gnu

g++-9.0.0-alpha20181125 snapshot (r266441) ICEs when compiling
gcc/testsuite/gcc.target/i386/loop-2.c at any optimization level except -Og and
w/ -fstrict-enums:

% powerpc-e300c3-linux-gnu-g++-9.0.0-alpha20181125 -O1 -fstrict-enums -c
gcc/testsuite/gcc.target/i386/loop-2.c
during GIMPLE pass: printf-return-value
gcc/testsuite/gcc.target/i386/loop-2.c: In function 'int main()':
gcc/testsuite/gcc.target/i386/loop-2.c:37:5: internal compiler error: in check,
at tree-vrp.c:188
   37 | int main(void)
      |     ^~~~
0x11f085d value_range_base::check()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/tree-vrp.c:188
0x11f13d0 value_range::set(value_range_kind, tree_node*, tree_node*,
bitmap_head*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/tree-vrp.c:113
0x11f1704 ranges_from_anti_range
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/tree-vrp.c:1257
0x11f8195 extract_range_from_binary_expr(value_range_base*, tree_code,
tree_node*, value_range_base const*, value_range_base const*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/tree-vrp.c:1596
0x12677c5 vr_values::extract_range_from_binary_expr(value_range*, tree_code,
tree_node*, tree_node*, tree_node*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/vr-values.c:721
0x1269b4e vr_values::extract_range_from_assignment(value_range*, gassign*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/vr-values.c:1375
0x164e7e2 evrp_range_analyzer::record_ranges_from_stmt(gimple*, bool)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/gimple-ssa-evrp-analyze.c:293
0x1670335 before_dom_children
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/gimple-ssa-sprintf.c:4162
0x162f1a7 dom_walker::walk(basic_block_def*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/domwalk.c:353
0x166b002 execute
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181125/work/gcc-9-20181125/gcc/gimple-ssa-sprintf.c:4190

While g++ for 32-bit BE targets ICEs reliably on this testcase in my setup, I
cannot reproduce it for x86_64, even w/ -m32.

Reply via email to