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.