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

            Bug ID: 70998
           Summary: [7 Regression]: ICE in pre_and_rev_post_order_compute,
                    at cfganal.c
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ubizjak at gmail dot com
  Target Milestone: ---

Recent commit caused following regression in the testsuite for x86_64-linux-gnu
target:

FAIL: g++.dg/pr62079.C   (internal compiler error)
FAIL: g++.dg/pr62079.C   (test for excess errors)

cc1plus -quiet -std=c++11 -O2 -fnon-call-exceptions pr62079.C 

pr62079.C: In function ‘int main()’:
pr62079.C:78:1: internal compiler error: in pre_and_rev_post_order_compute, at
cfganal.c:1056
 }
 ^
0x936c5d pre_and_rev_post_order_compute(int*, int*, bool)
        /home/uros/gcc-svn/trunk/gcc/cfganal.c:1055
0x901f8f init_alias_analysis()
        /home/uros/gcc-svn/trunk/gcc/alias.c:3252
0x13d0d5e sched_init()
        /home/uros/gcc-svn/trunk/gcc/haifa-sched.c:7369
0x13d23cd haifa_sched_init()
        /home/uros/gcc-svn/trunk/gcc/haifa-sched.c:7406
0xcf8d79 schedule_insns()
        /home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3504
0xcf959d schedule_insns()
        /home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3498
0xcf959d rest_of_handle_sched2
        /home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3737
0xcf959d execute
        /home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3873
Please submit a full bug report,
...

(gdb) bt
#0  internal_error (gmsgid=gmsgid@entry=0x1beef58 "in %s, at %s:%d") at
/home/uros/gcc-svn/trunk/gcc/diagnostic.c:1251
#1  0x000000000149f494 in fancy_abort (file=file@entry=0x1602c78
"/home/uros/gcc-svn/trunk/gcc/cfganal.c", line=line@entry=1056, 
    function=function@entry=0x1602df0 <pre_and_rev_post_order_compute(int*,
int*, bool)::__FUNCTION__> "pre_and_rev_post_order_compute") at
/home/uros/gcc-svn/trunk/gcc/diagnostic.c:1327
#2  0x0000000000936c5e in pre_and_rev_post_order_compute
(pre_order=pre_order@entry=0x0, 
    rev_post_order=rev_post_order@entry=0x21ed630,
include_entry_exit=include_entry_exit@entry=false)
    at /home/uros/gcc-svn/trunk/gcc/cfganal.c:1055
#3  0x0000000000901f90 in init_alias_analysis () at
/home/uros/gcc-svn/trunk/gcc/alias.c:3252
#4  0x00000000013d0d5f in sched_init () at
/home/uros/gcc-svn/trunk/gcc/haifa-sched.c:7369
#5  0x00000000013d23ce in haifa_sched_init () at
/home/uros/gcc-svn/trunk/gcc/haifa-sched.c:7406
#6  0x0000000000cf8d7a in schedule_insns () at
/home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3504
#7  0x0000000000cf959e in schedule_insns () at
/home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3498
#8  rest_of_handle_sched2 () at /home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3737
#9  (anonymous namespace)::pass_sched2::execute (this=<optimized out>) at
/home/uros/gcc-svn/trunk/gcc/sched-rgn.c:3873
#10 0x0000000000c85a04 in execute_one_pass (pass=pass@entry=0x21bb200) at
/home/uros/gcc-svn/trunk/gcc/passes.c:2344
#11 0x0000000000c85fd8 in execute_pass_list_1 (pass=0x21bb200) at
/home/uros/gcc-svn/trunk/gcc/passes.c:2428
#12 0x0000000000c85fea in execute_pass_list_1 (pass=0x21ba9c0) at
/home/uros/gcc-svn/trunk/gcc/passes.c:2429
#13 0x0000000000c85fea in execute_pass_list_1 (pass=0x21b98e0) at
/home/uros/gcc-svn/trunk/gcc/passes.c:2429
#14 0x0000000000c86035 in execute_pass_list (fn=<optimized out>,
pass=<optimized out>)
    at /home/uros/gcc-svn/trunk/gcc/passes.c:2439
#15 0x000000000097c9c4 in cgraph_node::expand (this=this@entry=0x7fffeffb7730)
at /home/uros/gcc-svn/trunk/gcc/cgraphunit.c:1982
#16 0x000000000097e268 in expand_all_functions () at
/home/uros/gcc-svn/trunk/gcc/cgraphunit.c:2118
#17 symbol_table::compile (this=this@entry=0x7fffefe0c0a8) at
/home/uros/gcc-svn/trunk/gcc/cgraphunit.c:2474
#18 0x0000000000980623 in symbol_table::compile (this=0x7fffefe0c0a8) at
/home/uros/gcc-svn/trunk/gcc/cgraphunit.c:2538
#19 symbol_table::finalize_compilation_unit (this=0x7fffefe0c0a8) at
/home/uros/gcc-svn/trunk/gcc/cgraphunit.c:2564
#20 0x0000000000d4c458 in compile_file () at
/home/uros/gcc-svn/trunk/gcc/toplev.c:488
#21 0x000000000062d9a4 in do_compile () at
/home/uros/gcc-svn/trunk/gcc/toplev.c:1987
#22 toplev::main (this=this@entry=0x7fffffffdb90, argc=<optimized out>,
argc@entry=6, argv=<optimized out>, 
    argv@entry=0x7fffffffdc98) at /home/uros/gcc-svn/trunk/gcc/toplev.c:2095
#23 0x000000000062fb87 in main (argc=6, argv=0x7fffffffdc98) at
/home/uros/gcc-svn/trunk/gcc/main.c:39
(gdb) f 2
#2  0x0000000000936c5e in pre_and_rev_post_order_compute
(pre_order=pre_order@entry=0x0, 
    rev_post_order=rev_post_order@entry=0x21ed630,
include_entry_exit=include_entry_exit@entry=false)
    at /home/uros/gcc-svn/trunk/gcc/cfganal.c:1055
1055        gcc_assert (pre_order_num
(gdb) list
1050        /* The number of nodes visited should be the number of blocks.  */
1051        gcc_assert (pre_order_num == n_basic_blocks_for_fn (cfun));
1052      else
1053        /* The number of nodes visited should be the number of blocks minus
1054           the entry and exit blocks which are not visited here.  */
1055        gcc_assert (pre_order_num
1056                    == (n_basic_blocks_for_fn (cfun) - NUM_FIXED_BLOCKS));
1057
1058      return pre_order_num;
1059    }
(gdb)

Reply via email to