------- Comment #21 from rguenth at gcc dot gnu dot org  2009-04-08 08:39 
-------
Ah, the key is the complex type!  Thus, the following testcase "works"

struct Y {};
struct X {
  Y y;
  __complex__ float val;
};

struct X __attribute__((noinline))
foo (float *p)
{
  struct X x;
  __real x.val = p[0];
  __imag x.val = p[1];
  return x;
}
extern "C" void abort (void);
int main()
{
  float a[2] = { 1., 2. };
  struct X x = foo(a);
  if (__real x.val != 1.
      || __imag x.val != 2.)
    abort ();
  return 0;
}


-- 


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

Reply via email to