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

Reply via email to