https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91267
Bug ID: 91267
Summary: [10 regression] SEGV in value_range_base::equal_p
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
CC: rguenth at gcc dot gnu.org
Target Milestone: ---
Target: sparc-sun-solaris2.11, i386-pc-solaris2.11,
s390x-ibm-linux-gnu, ia64-suse-linux-gnu
Between 20190724 (r273763) and 20190725 (r273802), and Ada test regressed
on both Solaris/SPARC and x86, 32 and 64-bit. There are also reports on
Linux/s390x and Linux/ia64.
+FAIL: gnat.dg/opt78.adb (test for excess errors)
Excess errors:
raised CONSTRAINT_ERROR : SIGSEGV
The failure can be seen with
$ gnat1 -quiet -O
-fRTS=/var/gcc/regression/trunk/11-gcc/build/i386-pc-solaris2.11/./libada
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gnat.dg/opt78.adb -o opt78.s
Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x09854e3d in value_range_base::equal_p (this=0x0, other=...)
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:220
220 return (m_kind == other.m_kind
(gdb) where
#0 0x09854e3d in value_range_base::equal_p (this=0x0, other=...)
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:220
#1 0x09854f49 in value_range::equal_p (this=0x0, other=...,
ignore_equivs=false) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:231
#2 0x098f34ca in vr_values::update_value_range (this=0xaff10e8,
var=0xfa563e38, new_vr=0xfeffd530)
at /vol/gcc/src/hg/trunk/local/gcc/vr-values.c:207
#3 0x09e9ca4e in evrp_range_analyzer::record_ranges_from_stmt (
this=0xfeffd690, stmt=0xfa564d50, temporary=false)
at /vol/gcc/src/hg/trunk/local/gcc/gimple-ssa-evrp-analyze.c:317
#4 0x096a70e6 in dom_opt_dom_walker::before_dom_children (this=0xfeffd678,
bb=0xfa40e708) at /vol/gcc/src/hg/trunk/local/gcc/gimple-iterator.h:213
#5 0x09e7403b in dom_walker::walk (this=0xfeffd678, bb=0xfa40e708)
at /vol/gcc/src/hg/trunk/local/gcc/domwalk.c:364
#6 0x096a5121 in (anonymous namespace)::pass_dominator::execute (
this=0xaca8da8, fun=0xfa555138)
at /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-dom.c:724
#7 0x09461c4e in execute_one_pass (pass=0xaca8da8)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2474
#8 0x09462395 in execute_pass_list_1 (pass=0xaca8da8)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2560
#9 0x094623a8 in execute_pass_list_1 (pass=0xaca8638, pass@entry=0xaca84f8)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2561
#10 0x094623de in execute_pass_list (fn=0xfa555138, pass=0xaca84f8) at
/vol/gcc/src/hg/trunk/local/gcc/passes.c:2571
#11 0x0909d8f5 in cgraph_node::expand (this=0xfa5590d4) at
/vol/gcc/src/hg/trunk/local/gcc/context.h:48
#12 0x0909e870 in expand_all_functions () at
/vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2332
#13 symbol_table::compile (this=this@entry=0xfa4070d0) at
/vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2688
#14 0x090a0db5 in symbol_table::compile (this=0xfa4070d0) at
/vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2868
#15 symbol_table::finalize_compilation_unit (this=0xfa4070d0) at
/vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2868
#16 0x0954e015 in compile_file () at
/vol/gcc/src/hg/trunk/local/gcc/toplev.c:481
#17 0x0955045d in do_compile () at
/vol/gcc/src/hg/trunk/local/gcc/toplev.c:2190
#18 toplev::main (this=0xfeffd87e, argc=<optimized out>, argv=<optimized out>)
at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2325
#19 0x09ff89c1 in main (argc=7, argv=0xfeffd8e0) at
/vol/gcc/src/hg/trunk/local/gcc/main.c:39
Quite likely caused by one of Richard's tree-vrp.c patches in that rev range.