This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/33472] ICE and invalid rtl sharing with complex on x86_64-mingw
- From: "ktietz at onevision dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Sep 2007 13:26:02 -0000
- Subject: [Bug middle-end/33472] ICE and invalid rtl sharing with complex on x86_64-mingw
- References: <bug-33472-10259@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from ktietz at onevision dot com 2007-09-21 13:26 -------
The bug is related to i386.c function 'return_in_memory_ms_64':
The return statement of this function has to be extended by SCmode.
Patch looks like:
static int
return_in_memory_ms_64 (const_tree type, enum machine_mode mode)
{
HOST_WIDE_INT size = int_size_in_bytes (type);
/* __m128 and friends are returned in xmm0. */
if (size == 16 && VECTOR_MODE_P (mode))
return 0;
/* Otherwise, the size must be exactly in [1248]. */
- return (size != 1 && size != 2 && size != 4 && size != 8);
+ return (size != 1 && size != 2 && size != 4 && size != 8) || mode == SCmode;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33472