http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56074
Bug #: 56074 Summary: [4.8 regression] ICE compiling gcc.dg/vect/pr49093.c Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: tejohn...@gcc.gnu.org Host: *-*-solaris2.{9,10} Target: *-*-solaris2.{9,10} Build: *-*-solaris2.{9,10} Between 20130102 and 20130104, several gcc.dg/vect testcases started failing: FAIL: gcc.dg/vect/pr49093.c (internal compiler error) FAIL: gcc.dg/vect/pr49093.c (test for excess errors) on both Solaris/SPARC and x86, many others only on Solaris/x86: FAIL: gcc.dg/vect/bb-slp-1.c (internal compiler error) FAIL: gcc.dg/vect/bb-slp-1.c (test for excess errors) WARNING: gcc.dg/vect/bb-slp-1.c compilation failed to produce executable FAIL: gcc.dg/vect/bb-slp-1.c scan-tree-dump-times slp "basic block vectorized using SLP" 1 I'm always seeing a SEGV in strlen, probably from strlen(NULL): Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0xfee163ec in strlen () from /lib/libc.so.1 (gdb) where #0 0xfee163ec in strlen () from /lib/libc.so.1 #1 0xfee7199e in _ndoprnt () from /lib/libc.so.1 #2 0xfee7454e in fprintf () from /lib/libc.so.1 #3 0x082f1fa8 in dump_loc (dump_kind=<optimized out>, dfile=0x914b140 <_iob+64>, loc=2147483648) at /vol/gcc/src/hg/trunk/local/gcc/dumpfile.c:270 #4 0x082f261a in dump_printf_loc (dump_kind=268435456, loc=2147483648, format=0x8dab89c <error reading variable>) at /vol/gcc/src/hg/trunk/local/gcc/dumpfile.c:370 #5 0x08798336 in vect_analyze_loop (loop=0xfea9a7d0) at /vol/gcc/src/hg/trunk/local/gcc/tree-vect-loop.c:1749 #6 0x087adf64 in vectorize_loops () at /vol/gcc/src/hg/trunk/local/gcc/tree-vectorizer.c:113 #7 0x08520bdb in execute_one_pass (pass=pass@entry=0x90be020 <pass_vectorize>) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2333 #8 0x08520fed in execute_pass_list (pass=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2381 #9 0x08521000 in execute_pass_list (pass=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2382 #10 0x08521000 in execute_pass_list (pass=<optimized out>) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2382 #11 0x082b4630 in expand_function (node=0xfea0e3f0) at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:1640 #12 0x082b664d in expand_all_functions () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:1744 #13 compile () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2042 #14 0x082b6d2a in finalize_compilation_unit () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2119 #15 0x0818aced in c_write_global_declarations () at /vol/gcc/src/hg/trunk/local/gcc/c/c-decl.c:10118 #16 0x085c36cd in compile_file () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:557 #17 0x085c56a5 in do_compile () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:1876 #18 toplev_main (argc=9, argv=0x804751c) at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:1952 #19 0x08cfcc2b in main (argc=9, argv=0x804751c) at /vol/gcc/src/hg/trunk/local/gcc/main.c:36 On Solaris 11 and Linux/x86_64 I don't see those SEGVs, but the dump file contains (null):0: note: ===== analyze_loop_nest ===== (null):0: note: === vect_analyze_loop_form === (null):0: note: not vectorized: control flow in loop. (null):0: note: bad loop form. which clearly indicates that NULL was passed as %s argument. I strongly suppose this is from the following patch: 2013-01-02 Teresa Johnson <tejohn...@google.com> * dumpfile.c (dump_loc): Print filename with location. [...] Please fix; this is a regression from 4.7. Rainer