This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
GCC testsuite failures for mips64vrel-elf toolchain with -mlong64 -mgp32
- From: Nick Clifton <nickc at redhat dot com>
- To: echristo at apple dot com, richard at codesourcery dot com
- Cc: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 04 Apr 2007 11:07:54 +0100
- Subject: GCC testsuite failures for mips64vrel-elf toolchain with -mlong64 -mgp32
Hi Eric, Hi Richard,
I need your brains...
The mips64vrel-elf toolchain is showing a lot of unexpected failures
in the gcc testsuite (and g++ testsuite) for multilibs which use
-mlong64 and -mgp32 together. For example the first one I came
across is this:
% ... mips64vrel-elf/gcc/xgcc ... -mlong64 -mgp32 ... gcc.c-torture/compile/20010327-1.c
gcc.c-torture/compile/20010327-1.c:12: error: initializer element is not constant
Or how about this one:
% ... mips64vrel-elf/gcc/xgcc ... gcc.c-torture/compile/mipscop-4.c ... -mlong64 -mgp32
gcc.c-torture/compile/mipscop-4.c:4: error: register specified for 'c3r1' isn't suitable for data type
The problems all seem to extend from the fact that a long is forced
to be 64-bits but the general purpose registers are 32-bits. What I
am not sure about is whether this is a generic bug in gcc somewhere
(that assumes that a long will fit into a register) or whether there
is something mips specific about the problem. (One thing telling
gcc that a long is 32-bits and another thing tell it that they are
64-bits).
What do you think ?
Cheers
Nick