http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59605
Bug ID: 59605 Summary: [4.9 Regression] error: wrong number of branch edges after unconditional jump in bb 11 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com On Linux/x86, r206213 gave [hjl@gnu-18 gcc]$ cat bad.c #define BUFFER_SIZE (16*1024*1024 + AVG_SIZE*2) /*#define MEMORY_COPIES (1024*1024*64*(long long)10)*/ char t[BUFFER_SIZE]; main() { unsigned int i; for (i=0;i<((long long)MEMORY_COPIES + AVG_SIZE * 2 - 1)/AVG_SIZE*2;i++) #ifdef test_memset __builtin_memset (t+(i*1024*1024+i*1)%(BUFFER_SIZE - AVG_SIZE*2), i, (AVG_SIZE + i) % (AVG_SIZE * 2 + 0)); #else __builtin_memcpy (t+(i*1024*1024+i*1)%(BUFFER_SIZE - AVG_SIZE*2), t+((i+1)*1024*1024*4+i*1)%(BUFFER_SIZE - AVG_SIZE *2), (AVG_SIZE + i) % (AVG_SIZE * 2 + 0)); #endif return 0; } [hjl@gnu-18 gcc]$ ./xgcc -B ./ -x c -O3 -minline-stringops-dynamically -DAVG_SIZE=8192000 -DMEMORY_COPIES=640000000 bad.c bad.c: In function ‘main’: bad.c:14:1: error: wrong number of branch edges after unconditional jump in bb 11 } ^ bad.c:14:1: error: wrong number of branch edges after unconditional jump in bb 7 bad.c:14:1: internal compiler error: verify_flow_info failed 0x666c23 verify_flow_info() /export/gnu/import/git/gcc/gcc/cfghooks.c:260 0xe25a53 try_optimize_cfg /export/gnu/import/git/gcc/gcc/cfgcleanup.c:2857 0xe25a53 cleanup_cfg(int) /export/gnu/import/git/gcc/gcc/cfgcleanup.c:3022 0x665412 gimple_expand_cfg /export/gnu/import/git/gcc/gcc/cfgexpand.c:5837 0x665412 execute /export/gnu/import/git/gcc/gcc/cfgexpand.c:5932 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. [hjl@gnu-18 gcc]$