------- Comment #10 from ubizjak at gmail dot com  2008-11-16 20:58 -------
Real bug with argument passing. Confirmed on x86_64-linux-gnu with the
testcase:

--cut here--
struct S2848
{
  unsigned int a;
  _Complex int b;
};

struct S2848 s2848;

void __attribute__((noinline))
check2848 (struct S2848 arg0)
{
  if (arg0.b != s2848.b)
    abort ();
}

int main()
{
  s2848.a = 4027477739U;
  s2848.b = (723419448 + -218144346 * __extension__ 1i);

  check2848 (s2848);

  return 0;
}
--cut here--

> gcc -O2 t.c
> ./a.out
Aborted


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl at gcc dot gnu dot org,
                   |                            |hubicka at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   GCC host triplet|i686-apple-darwin9          |
 GCC target triplet|i686-apple-darwin9          |x86_64
           Keywords|                            |ABI, wrong-code
      Known to fail|                            |4.3.0 4.4.0
   Last reconfirmed|0000-00-00 00:00:00         |2008-11-16 20:58:10
               date|                            |
            Summary|tmpdir-gcc.dg-struct-layout-|structures with _Complex
                   |1/t028 failure at -m64 on   |arguments are not passed
                   |i686-apple-darwin9          |correctly


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

Reply via email to