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

            Bug ID: 92476
           Summary: [10 regression] SEGV in cgraph_edge_brings_value_p
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---
            Target: i386-pc-solaris2.11, i686-pc-linux-gnu,
                    i586-unknown-freebsd11

Between 20191110 (r278013) and 20191111 (r278058), three tests regressed on
32-bit x86:
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++14 (internal compiler error)
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++14 (test for excess errors)
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++17 (internal compiler error)
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++17 (test for excess errors)
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++2a (internal compiler error)
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++2a (test for excess errors)
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++98 (internal compiler error)
+FAIL: g++.dg/ipa/pr61654.C  -std=gnu++98 (test for excess errors)
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++14 (internal compiler error)
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++14 (test for excess errors)
+UNRESOLVED: g++.dg/ipa/pr63814.C  -std=gnu++14 compilation failed to produce
executable
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++17 (internal compiler error)
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++17 (test for excess errors)
+UNRESOLVED: g++.dg/ipa/pr63814.C  -std=gnu++17 compilation failed to produce
executable
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++2a (internal compiler error)
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++2a (test for excess errors)
+UNRESOLVED: g++.dg/ipa/pr63814.C  -std=gnu++2a compilation failed to produce
executable
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++98 (internal compiler error)
+FAIL: g++.dg/ipa/pr63814.C  -std=gnu++98 (test for excess errors)
+UNRESOLVED: g++.dg/ipa/pr63814.C  -std=gnu++98 compilation failed to produce
executable
+FAIL: g++.dg/other/pr87916.C  -std=gnu++14 (internal compiler error)
+FAIL: g++.dg/other/pr87916.C  -std=gnu++14 (test for excess errors)
+FAIL: g++.dg/other/pr87916.C  -std=gnu++17 (internal compiler error)
+FAIL: g++.dg/other/pr87916.C  -std=gnu++17 (test for excess errors)
+FAIL: g++.dg/other/pr87916.C  -std=gnu++2a (internal compiler error)
+FAIL: g++.dg/other/pr87916.C  -std=gnu++2a (test for excess errors)
+FAIL: g++.dg/other/pr87916.C  -std=gnu++98 (internal compiler error)
+FAIL: g++.dg/other/pr87916.C  -std=gnu++98 (test for excess errors)
Excess errors:
during IPA pass: cp
/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/ipa/pr61654.C:40:1: internal
compiler error: Segmentation Fault
0x92f954c crash_signal
        /vol/gcc/src/hg/trunk/local/gcc/toplev.c:329
0x9be4613 same_node_or_its_all_contexts_clone_p
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:3530
0x9be4613 cgraph_edge_brings_value_p
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:3545
0x9be032d get_info_about_necessary_edges<tree_node*>
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:3654
0x9be032d decide_about_value<tree_node*>
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:4801
0x9be29c4 decide_whether_version_node
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:4888
0x9be29c4 ipcp_decision_stage
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:5051
0x9be29c4 ipcp_driver
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:5228
0x9be29c4 execute
        /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:5319

Can be reproduced with

$ cc1plus -fpreprocessed pr61654.ii -quiet -O3 -o pr61654.s
Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
cgraph_edge_brings_value_p(cgraph_edge*, ipcp_value_source<tree_node*>*,
cgraph_node*, ipcp_value<tree_node*>*) [clone .cold] ()
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:3545
3545          || !same_node_or_its_all_contexts_clone_p (real_dest, dest)
(gdb) where
#0  cgraph_edge_brings_value_p(cgraph_edge*, ipcp_value_source<tree_node*>*,
cgraph_node*, ipcp_value<tree_node*>*) [clone .cold] ()
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:3545
#1  0x09be032e in get_info_about_necessary_edges<tree_node*> (
    caller_count=<synthetic pointer>, count_sum=<synthetic pointer>, 
    freq_sum=<synthetic pointer>, dest=0xfa4bb410, val=0xa4cd104)
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:3652
#2  decide_about_value<tree_node*> (node=node@entry=0xfa4bb410, 
    index=index@entry=2, offset=<optimized out>, val=<optimized out>, 
    known_csts=..., known_contexts=...)
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:4801
#3  0x09be29c5 in decide_whether_version_node (node=0xfa4bb410)
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:4888
#4  ipcp_decision_stage (topo=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:5051
#5  ipcp_driver () at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:5228
#6  (anonymous namespace)::pass_ipa_cp::execute (this=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/ipa-cp.c:5319
#7  0x0921ca72 in execute_one_pass (pass=0xa4526f0)
    at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2494
#8  0x0921e07d in execute_ipa_pass_list (pass=0xa4526f0)
    at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2921
#9  0x08e8feda in ipa_passes ()
    at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2541
#10 symbol_table::compile (this=this@entry=0xfa4070d0)
    at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2618
#11 0x08e91de5 in symbol_table::compile (this=0xfa4070d0)
    at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2865
#12 symbol_table::finalize_compilation_unit (this=0xfa4070d0)
    at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2865
#13 0x092f99a1 in compile_file ()
    at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:484
#14 0x092fc101 in do_compile ()
    at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2284
#15 toplev::main (this=0xfeffd88e, argc=<optimized out>, argv=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2419
#16 0x09cafef1 in main (argc=7, argv=0xfeffd8f4)
    at /vol/gcc/src/hg/trunk/local/gcc/main.c:39

Reply via email to