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

belagod at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |belagod at gcc dot gnu.org

--- Comment #1 from belagod at gcc dot gnu.org 2010-10-05 13:36:16 UTC ---
(In reply to comment #0)
> The following sample causes gcc ICE on arm
> 
> int decode_subframe_lpc(int channel, int pred_order)
> {
>     int i, j;
>     int qlevel;
>     int coeffs[pred_order];
>     int *decoded = channel;
>     long long sum;
>     for (i = pred_order; i < channel; i++) {
>         for (j = 0; j < pred_order; j++)
>             sum += (long long)coeffs[j] * decoded[i-j-1];
>         decoded[i] += sum >> qlevel;
>     }
> 
>     return 0;
> }
> 
> here is the commandline to reproduce it, it only happens at O3
> 
> arm-none-linux-gnueabi-gcc-4.6.0 -march=armv7-a -mtune=cortex-a8 -mfpu=neon
> -mfloat-abi=softfp flacdec.i -c -O3
> 
> 
> here is backtrace
> 
> Analyzing compilation unit
> Performing interprocedural optimizations
>  <*free_lang_data> <visibility> <early_local_cleanups> <increase_alignment>
> <whole-program> <ipa-profile> <cp> <inline> <pure-const> 
> <static-var>Assembling
> functions:
>  decode_subframe_lpc
> Program received signal SIGSEGV, Segmentation fault.
> 0x085bfa6a in supportable_widening_operation (code=WIDEN_MULT_EXPR, 
>     stmt=0xb7f942d8, vectype_out=0x0, vectype_in=0xb7de8660, 
> decl1=0xbffff26c, 
>     decl2=0xbffff26c, code1=0xbffff268, code2=0xbffff268, 
>     multi_step_cvt=0xbffff264, interm_types=0xbffff260)
>     at
> /home/kraj/work/cross/arm-none-linux-gnueabi/../../gcc-trunk/gcc/tree-vect-stmts.c:5193
> 5193      if (insn_data[icode1].operand[0].mode != TYPE_MODE (wide_vectype)
> 
> 
> here is the compiler configure
> 
> $ arm-none-linux-gnueabi-gcc-4.6.0 -v
> Using built-in specs.
> COLLECT_GCC=arm-none-linux-gnueabi-gcc-4.6.0
> COLLECT_LTO_WRAPPER=/home/kraj/work/cross/arm-none-linux-gnueabi/tools/libexec/gcc/arm-none-linux-gnueabi/4.6.0/lto-wrapper
> Target: arm-none-linux-gnueabi
> Configured with:
> /home/kraj/work/cross/arm-none-linux-gnueabi/../../gcc-trunk/configure
> --target=arm-none-linux-gnueabi
> --prefix=/home/kraj/work/cross/arm-none-linux-gnueabi/tools
> --with-sysroot=/home/kraj/work/cross/arm-none-linux-gnueabi/sysroot
> --enable-__cxa_atexit --disable-libssp --disable-libgomp --disable-libmudflap
> --enable-languages=c,c++
> Thread model: posix
> gcc version 4.6.0 20100927 (experimental) (GCC)

I've just posted a patch that fixes this. See
http://gcc.gnu.org/ml/gcc-patches/2010-10/msg00323.html

Reply via email to