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.

Reply via email to