On 22/10/12 15:14, Matti, Manjunath wrote:
Hi,I observed the following failure on arm big-endian: FAIL: tmpdir-g++.dg-struct-layout-1/t024 cp_compat_x_tst.o compile, (internal compiler error) The compiler is configured as: armeb-montavista-linux-gnueabi-gcc -v Using built-in specs. COLLECT_GCC=./armeb-tools/bin/armeb-montavista-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/home/manjunath/NCDtools/mips/toolchain/armeb-tools/bin/../libexec/gcc/armeb-montavista-linux-gnueabi/4.7.0/lto-wrapper Target: armeb-montavista-linux-gnueabi Configured with: /home/manjunath/NCDtools/mips/toolchain/scripts/../src/configure --disable-fixed-point --without-ppl --without-python --disable-werror --enable-checking --with-sysroot --with-local-prefix=/home/manjunath/NCDtools/mips/toolchain/scripts/../armeb-tools/armeb-montavista-linux-gnueabi/sys-root --disable-sim --enable-symvers=gnu --enable-__cxa_atexit --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-tune=cortex-a9 --target=armeb-montavista-linux-gnueabi --enable-languages=c,c++ --prefix=/home/manjunath/NCDtools/mips/toolchain/scripts/../armeb-tools Thread model: posix gcc version 4.7.0 () Debugging shows that ITmode is not handled by arm_return_in_msb debug snip ... {{{ void test2001() void test2002() void test2003() void test2004() void test2005() Breakpoint 1, shift_return_value (mode=TImode, left_p=0 '\000', value=0x7ffff033b380) at /home/manjunath/NCDtools/mips/toolchain/scripts/../src/gcc/calls.c:2127 2127 gcc_assert (REG_P (value) && HARD_REGISTER_P (value)); (gdb) p mode $1 = TImode (gdb) p left_p $2 = 0 '\000' (gdb) p debug_rtx(value) (parallel:TI [ (expr_list:REG_DEP_TRUE (reg:DI 63 s0) (const_int 0 [0])) (expr_list:REG_DEP_TRUE (reg:DI 65 s2) (const_int 8 [0x8])) ]) $3 = void }}} I have attached the patch which fixes the above problem, kindly review the patch and accept it for mainline. Regards, Manjunath S Matti.= TImode_fix.patch N¬n‡r¥ªíÂ)emçhÂyhi×¢w^™©Ý
That doesn't look right. The test is far too specific. Even if this is the right place for the fix (and I'm yet to be convinced that it is), you should be testing that the size of mode is less than some limit, not that it's not a specific mode.
R.
