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

            Bug ID: 84724
           Summary: internal compiler error: in single_succ_edge, at
                    basic-block.h:339
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vegard.nossum at gmail dot com
                CC: webrown.cpp at gmail dot com
  Target Milestone: ---

Input:

int __builtin_trap();

int a() {
  int b;
  int c(&b);
  return b %= b ? c : 0;
}

Output:

$ xgcc -x c++ -O3 -fpermissive -fno-toplevel-reorder -S -
<stdin>:1:5: warning: new declaration 'int __builtin_trap()' ambiguates
built-in declaration 'void __builtin_trap()' [-Wbuiltin-declaration-mismatch]
<stdin>: In function 'int a()':
<stdin>:5:9: warning: invalid conversion from 'int*' to 'int' [-fpermissive]
<stdin>:3:5: error: wrong outgoing edge flags at end of bb 4
during GIMPLE pass: isolate-paths
<stdin>:3:5: internal compiler error: in single_succ_edge, at basic-block.h:339
0x32700db single_succ_edge
        /home/vegard/git/gcc/gcc/basic-block.h:339
0x328b157 single_succ
        /home/vegard/git/gcc/gcc/basic-block.h:359
0x328b157 gimple_verify_flow_info
        /home/vegard/git/gcc/gcc/tree-cfg.c:5792
0x185db91 verify_flow_info()
        /home/vegard/git/gcc/gcc/cfghooks.c:263
0x33140ac checking_verify_flow_info
        /home/vegard/git/gcc/gcc/cfghooks.h:198
0x33140ac cleanup_tree_cfg_noloop
        /home/vegard/git/gcc/gcc/tree-cfgcleanup.c:920
0x33140ac cleanup_tree_cfg()
        /home/vegard/git/gcc/gcc/tree-cfgcleanup.c:971
0x2b6aaa4 execute_function_todo
        /home/vegard/git/gcc/gcc/passes.c:1947
0x2b73d16 do_per_function
        /home/vegard/git/gcc/gcc/passes.c:1659
0x2b73d16 execute_todo
        /home/vegard/git/gcc/gcc/passes.c:2048

$ xgcc --version
xgcc (GCC) 8.0.1 20180303 (experimental)

Built from git 0d86c284d085d29782d862600a79aa1ff0ee0c47 (r258221).

7.3.0 fails differently:

<source>:3:5: internal compiler error: in expand_gimple_basic_block, at
cfgexpand.c:5457

6.3.0 apparently succeeds in compiling it.

Test case was minimised by C-Reduce.

Reply via email to