http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56043



             Bug #: 56043

           Summary: ICE in rs6000_builtin_vectorized_libmass for

                    vsx-mass-1.c

    Classification: Unclassified

           Product: gcc

           Version: 4.7.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: target

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: ja...@gcc.gnu.org

                CC: meiss...@gcc.gnu.org

            Target: powerpc-none-eabi





My mainline compiler for powerpc-none-eabi gets a null pointer dereference for

a test:



/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c:

In function 'test_float_atan2':^M

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c:80:1:

internal compiler error: Segmentation fault^M

0x85fb2d2 crash_signal^M

       

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/toplev.c:332^M

0x813611c contains_struct_check

       

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/tree.h:3782

0x88b5172 rs6000_builtin_vectorized_libmass

       

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/config/rs6000/rs6000.c:3751

0x88093be vect_analyze_loop_operations

       

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/tree-vect-loop.c:1443

0x880ac46 vect_analyze_loop_2

       

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/tree-vect-loop.c:1720

0x880ac46 vect_analyze_loop(loop*)

       

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/tree-vect-loop.c:1773

0x8825e13 vectorize_loops()

       

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/gcc/tree-vectorizer.c:113

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.



FAIL: gcc.target/powerpc/vsx-mass-1.c (internal compiler error)

FAIL: gcc.target/powerpc/vsx-mass-1.c (test for excess errors)



The null pointer dereference comes from a null value assigned to bdecl returned

from builtin_decl_implicit in calls in rs6000_builtin_vectorized_libmass.  If

that function returns NULL_TREE when bdecl is NULL then the test program

compiles but nost of the assembly scans fail, so perhaps that isn't a valid

fix.



Here's the output from my tests when the null pointers are avoided:



PASS: gcc.target/powerpc/vsx-mass-1.c (test for excess errors)

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+atan2d2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+atan2f4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+hypotd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+hypotf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+powd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+powf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+acosd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+acosf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+acoshd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+acoshf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+asind2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+asinf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+asinhd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+asinhf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+atand2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+atanf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+atanhd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+atanhf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+cbrtd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+cbrtf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+cosd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+cosf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+coshd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+coshf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+erfd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+erff4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+erfcd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+erfcf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+exp2d2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+exp2f4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+expd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+expf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+expm1d2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+expm1f4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+lgamma

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+lgammaf

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+log10d2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+log10f4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+log1pd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+log1pf4

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+log2d2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+log2f4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+logd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+logf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+sind2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+sinf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+sinhd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+sinhf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+tand2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+tanf4

PASS: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+tanhd2

FAIL: gcc.target/powerpc/vsx-mass-1.c scan-assembler bl[\\. ]+tanhf4



Here's how my compiler is configured:



Using built-in specs.

COLLECT_GCC=install/bin/powerpc-none-eabi-gcc

COLLECT_LTO_WRAPPER=/scratch/janisjo/build6/fsf-powerpc-eabi/install/bin/../libexec/gcc/powerpc-none-eabi/4.8.0/lto-wrapper

Target: powerpc-none-eabi

Configured with:

/scratch/janisjo/build6/fsf-powerpc-eabi/src/gcc-mainline/configure

--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=powerpc-none-eabi

--enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch

--with-gnu-as --with-gnu-ld --enable-languages=c,c++ --disable-shared

--enable-lto --with-newlib --disable-nls --prefix=/opt/codesourcery

--with-headers=yes --with-sysroot=/opt/codesourcery/powerpc-none-eabi

--with-build-sysroot=/scratch/janisjo/build6/fsf-powerpc-eabi/install/powerpc-none-eabi

--with-gmp=$HOSTLIBS/usr --with-mpfr=$HOSTLIBS/usr --with-mpc=$HOSTLIBS/usr

--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'

--with-isl=$HOSTLIBS/usr --with-cloog=$HOSTLIBS/usr --with-libelf=$HOSTLIBS/usr

--disable-libgomp --disable-libitm --enable-poison-system-directories

--with-build-time-tools=/scratch/janisjo/build6/fsf-powerpc-eabi/install/powerpc-none-eabi/bin

--with-build-time-tools=/scratch/janisjo/build6/fsf-powerpc-eabi/install/powerpc-none-eabi/bin

Thread model: single

gcc version 4.8.0 20130119 (experimental) [trunk revision 195309] (GCC)



As far as I can tell the test has failed for this configuration since it was

added.

Reply via email to