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
Description: TImode_fix.patch
