------- Comment #18 from hjl dot tools at gmail dot com  2010-07-16 13:31 
-------
The problem isn't new:

[...@gnu-6 case3]$ cat x.c
#include "x.h"

void
foo (long double x, struct A y, long double z)
{
  int i;
  struct A a = { { 0, 1, 2, 3 } };

  if (x != 8.0L || z != 8.0L)
    __builtin_abort ();
  if (__builtin_memcmp (&a, &y, sizeof (a)))
    __builtin_abort ();
}
[...@gnu-6 case3]$ cat x.h
struct A
{ 
  float V4SF __attribute__ ((vector_size (16)));
};

void foo (long double, struct A, long double);
[...@gnu-6 case3]$ cat main.c 
#include "x.h"

int
main (void)
{
  struct A a = { { 0, 1, 2, 3 } };
  foo (8.0L, a, 8.0L);
  return 0;
}
[...@gnu-6 case3]$ make CC=gcc
gcc -m32 -g -O -msse2   -c -o x.o x.c
gcc -m32 -g -O -mno-sse   -c -o main.o main.c
gcc -m32 -g -O -o x x.o main.o
./x
make: *** [all] Aborted
[...@gnu-6 case3]$ 


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|-mavx changes ABI           |-msse/-mavx change ABI


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44948

Reply via email to