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.