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

            Bug ID: 87134
           Summary: [9 regression] SEGV in cc1 caused by r263875
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: rguenth at gcc dot gnu.org
  Target Milestone: ---
              Host: *-*-solaris2.11
            Target: *-*-solaris2.11
             Build: *-*-solaris2.11

Between 20180822 (r263778) and 20180828 (r263922), Solaris bootstrap (both
sparc
and x86) broke like this:

/var/gcc/reghunt/tspsegv/48038/./gcc/xgcc
-B/var/gcc/reghunt/tspsegv/48038/./gcc/ -B/usr/local/i386-pc-solaris2.11/bin/
-B/usr/local/i386-pc-solaris2.11/lib/ -isystem
/usr/local/i386-pc-solaris2.11/include -isystem
/usr/local/i386-pc-solaris2.11/sys-include -fno-checking -DHAVE_CONFIG_H -I..
-I/var/gcc/reghunt/trunk/libstdc++-v3/../libiberty
-I/var/gcc/reghunt/trunk/libstdc++-v3/../include -D_GLIBCXX_SHARED
-I/var/gcc/reghunt/tspsegv/48038/i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11
-I/var/gcc/reghunt/tspsegv/48038/i386-pc-solaris2.11/libstdc++-v3/include
-I/var/gcc/reghunt/trunk/libstdc++-v3/libsupc++ -g -O2 -DIN_GLIBCPP_V3
-Wno-error -c cp-demangle.c  -fPIC -DPIC -o cp-demangle.o -v -save-temps
[...]
xgcc: internal compiler error: Segmentation Fault signal terminated program cc1

during stage2 (also in several other places).  A reghunt identified this patch
as the culprit:

2018-08-27  Richard Biener  <rguent...@suse.de>

        * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Declare.
        * cfganal.c (rev_post_order_and_mark_dfs_back_seme): New function.

        * tree-ssa-sccvn.h (struct vn_pval): New structure.
        (struct vn_nary_op_s): Add unwind_to member.  Add
        predicated_values flag and put result into a union together
        with a linked list of vn_pval.
        (struct vn_ssa_aux): Add name member to make maintaining
        a map of SSA name to vn_ssa_aux possible.  Remove no longer
        needed info, dfsnum, low, visited, on_sccstack, use_processed
        and range_info_anti_range_p members.
        (run_scc_vn, vn_eliminate, free_scc_vn, vn_valueize): Remove.
        (do_rpo_vn, run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn):
        New functions.
        (vn_valueize): New global.
        (vn_context_bb): Likewise.
        (VN_INFO_RANGE_INFO, VN_INFO_ANTI_RANGE_P, VN_INFO_RANGE_TYPE,
        VN_INFO_PTR_INFO): Remove.
        * tree-ssa-sccvn.c: ... (rewrite)
        (pass_fre::execute): For -O2+ initialize loops and run
        RPO VN in optimistic mode (iterating).  For -O1 and -Og
        run RPO VN in non-optimistic mode.
[...]

Unfortunately, the error is somewhat evasive: running cc1 directly on the .i
file succeeds.  However, the core dump reveals a bit more.  While gdb cannot
handle it, dbx can:

program terminated by signal SEGV (no mapping at the fault address)
0xfaae80cc: t_splay+0x0026:     movl     0x00000008(%esi),%edx
Current function is crash_signal
  325     internal_error ("%s", strsignal (signo));
(dbx) where                                                                  
dbx: warning: loop detected in stack
  [1] t_splay(0xabd2150, 0x0, 0xfabbe145, 0xfaae7f5e), at 0xfaae80cc 
  [2] t_delete(0xabd2150, 0xfac08000, 0xfeffb398, 0xfaae7bf6), at 0xfaae7f81 
  [3] realfree(0xabd2138, 0xf9214fa0, 0x8848cd8, 0xfaae7d7f), at 0xfaae7c48 
  [4] _morecore(0x40, 0xfac08000, 0xfac09348, 0xfaae7574), at 0xfaae7f23 
  [5] _malloc_unlocked(0x3c), at 0xfaae7712 
  [6] do_malloc(0x3c, 0x0, 0xfeffb498, 0xfaae74cc), at 0xfaae7537 
  [7] malloc(0x3c, 0x0, 0xa, 0xfaafcb62), at 0xfaae74e0 
  [8] strdup(0xfeffb720, 0x14, 0xfeffb4d8, 0xfab13d48), at 0xfaafcb7e 
  [9] handle_mo(0xfeffb5c0, 0xfeffbb6c, 0x0, 0xfab12591), at 0xfab13db6 
  [10] _real_gettext_u_l(0xfaaab6ac, 0xfaa585b4, 0x0, 0x0, 0x5, 0x0,
0xfeffbb6c, 0xfab12c81), at 0xfab1296a 
  [11] _real_gettext_u(0xfaaab6ac, 0xfaa585b4, 0x0, 0x0, 0x5, 0x0, 0xfeffbbb8,
0xfab10891), at 0xfab12caf 
  [12] dgettext(0xfaaab6ac, 0xfaa585b4, 0x0, 0xfaafcfb4), at 0xfab108cf 
  [13] strsignal(0xb, 0x0, 0x1, 0x0), at 0xfaafcfe6 
=>[14] crash_signal(signo = 11), line 325 in "toplev.c"
  [15] __sighndlr(0xb, 0x0, 0xfeffbcd0, 0x93d6d44), at 0xfabba015 
  [16] call_user_handler(0xb), at 0xfabac0ec 
  [17] sigacthandler(0xb, 0x0, 0xfeffbcd0, 0x1f, 0x0, 0x0), at 0xfabac59b 
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [18] t_splay(0xabd21cc, 0x2, 0x87282bc, 0xfaae7f5e), at 0xfaae80cc 
  [19] t_delete(0xabd21cc, 0x0, 0xfeffca18, 0xfaae7bf6), at 0xfaae7f81 
  [20] realfree(0xabd2158, 0x3082fe, 0xfac09348, 0xfaae7574), at 0xfaae7c48 
  [21] _malloc_unlocked(0x18), at 0xfaae7782 
  [22] do_malloc(0x18, 0x0, 0xfeffcaf8, 0xfaae74cc), at 0xfaae7537 
  [23] malloc(0x18, 0x2011c7, 0x80471eed, 0x7ee65b58), at 0xfaae74e0 
  [24] xrealloc(oldmem = (nil), size = 24U), line 177 in "xmalloc.c"
  [25] va_heap::reserve<std::pair<int, int> >(v = (nil), reserve = 2U, exact =
true), line 288 in "vec.h"
  [26] vec<std::pair<int, int>, va_heap, vl_ptr>::reserve(this = 0xabdf7bc,
nelems = 2U, exact = true), line 1621 in "vec.h"
  [27] vec<std::pair<int, int>, va_heap, vl_ptr>::reserve_exact(this =
0xabdf7bc, nelems = 2U), line 1641 in "vec.h"
  [28] rpo_elim::eliminate_push_avail(this = 0xfeffcd90, bb = 0xf9a50c30,
leader = 0xf96bd230), line 5770 in "tree-ssa-sccvn.c"
  [29] process_bb(avail = CLASS, bb = 0xf9a50c30, bb_visited = false,
iterate_phis = false, iterate = true, eliminate = false, do_region = false,
exit_bbs = (nil)), line 6124 in "tree-ssa-sccvn.c"
  [30] do_rpo_vn(fn = 0xf9fd5618, entry = 0xf9aedb60, exit_bbs = (nil), iterate
= true, eliminate = false), line 6405 in "tree-ssa-sccvn.c"
  [31] run_rpo_vn(kind = <unknown enum member -16789756>), line 5531 in
"tree-ssa-sccvn.c"

Reply via email to