------- 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