http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50727
Bug #: 50727 Summary: ICE with segfault in flow_bb_inside_loop_p Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: mgret...@sourceware.org CC: i...@il.ibm.com Target: arm-none-eabi Created attachment 25496 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25496 Test case The attached test case causes an ICE when compiled as follows: $ arm-none-eabi-gcc -O3 -mfpu=neon -mcpu=cortex-a9 -ftree-vectorize test.c test.c: In function 'f0a': test.c:5:1: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ gdb --args /work/builds/install/libexec/gcc/arm-none-eabi/4.7.0/cc1 -quiet -v -D__USES_INITFINI__ test.c -quiet -dumpbase test.c -mfpu=neon -mcpu=cortex-a9 -mfloat-abi=softfp -auxbase test -O3 -version -ftree-vectorize -o /tmp/ccaMl5b6.s Gives the following backtrace: #0 flow_bb_inside_loop_p (loop=0x7ffff7ebff68, bb=0x0) at /work/local-checkouts/gcc-fsf/gcc/cfgloop.c:776 #1 0x00000000009f053f in vect_is_simple_use (operand=0x7ffff75fc910, loop_vinfo=<value optimised out>, bb_vinfo=0x0, def_stmt=0x7fffffffd438, def=0x7fffffffd440, dt=0x7fffffffd44c) at /work/local-checkouts/gcc-fsf/gcc/tree-vect-stmts.c:5611 #2 0x00000000009fa2ac in process_use (stmt=0x7ffff75f4630, use=0x7ffff75fc910, loop_vinfo=0x14ed400, live_p=<value optimised out>, relevant=vect_used_in_scope, worklist=<value optimised out>) at /work/local-checkouts/gcc-fsf/gcc/tree-vect-stmts.c:368 #3 0x00000000009fadb7 in vect_mark_stmts_to_be_vectorized (loop_vinfo=0x14ed400) at /work/local-checkouts/gcc-fsf/gcc/tree-vect-stmts.c:674 #4 0x0000000000a0cb61 in vect_analyze_loop_2 (loop=0x7ffff7ebff68) at /work/local-checkouts/gcc-fsf/gcc/tree-vect-loop.c:1504 #5 vect_analyze_loop (loop=0x7ffff7ebff68) at /work/local-checkouts/gcc-fsf/gcc/tree-vect-loop.c:1650 #6 0x0000000000a19ece in vectorize_loops () at /work/local-checkouts/gcc-fsf/gcc/tree-vectorizer.c:203 #7 0x00000000007d81a9 in execute_one_pass (pass=0x129f780) at /work/local-checkouts/gcc-fsf/gcc/passes.c:2064 #8 0x00000000007d8525 in execute_pass_list (pass=0x129f780) at /work/local-checkouts/gcc-fsf/gcc/passes.c:2119 #9 0x00000000007d8537 in execute_pass_list (pass=0x129f5a0) at /work/local-checkouts/gcc-fsf/gcc/passes.c:2120 #10 0x00000000007d8537 in execute_pass_list (pass=0x129eca0) at /work/local-checkouts/gcc-fsf/gcc/passes.c:2120 #11 0x00000000008df618 in tree_rest_of_compilation (fndecl=0x7ffff7569600) at /work/local-checkouts/gcc-fsf/gcc/tree-optimize.c:420 #12 0x00000000005c0e5e in cgraph_expand_function (node=0x7ffff7590000) at /work/local-checkouts/gcc-fsf/gcc/cgraphunit.c:1805 #13 0x00000000005c445a in cgraph_expand_all_functions () at /work/local-checkouts/gcc-fsf/gcc/cgraphunit.c:1864 #14 cgraph_optimize () at /work/local-checkouts/gcc-fsf/gcc/cgraphunit.c:2141 #15 0x00000000005c497a in cgraph_finalize_compilation_unit () at /work/local-checkouts/gcc-fsf/gcc/cgraphunit.c:1312 #16 0x00000000004a6e48 in c_write_global_declarations () at /work/local-checkouts/gcc-fsf/gcc/c-decl.c:9936 #17 0x000000000087c61a in compile_file (argc=18, argv=0x7fffffffd8e8) at /work/local-checkouts/gcc-fsf/gcc/toplev.c:581 #18 do_compile (argc=18, argv=0x7fffffffd8e8) at /work/local-checkouts/gcc-fsf/gcc/toplev.c:1925 #19 toplev_main (argc=18, argv=0x7fffffffd8e8) at /work/local-checkouts/gcc-fsf/gcc/toplev.c:2001 #20 0x00007ffff7874c4d in __libc_start_main () from /lib/libc.so.6 #21 0x0000000000496de9 in _start () The ICE happens at the same place as in PR50635 - however still occurs (in rev 179965) in a compiler with a fix for that PR.