https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78804

--- Comment #19 from Ian Lance Taylor <ian at airs dot com> ---
OK, following Joseph's suggestion, what does this print when compiled with
-m64bit-doubles?

#include <stdio.h>

struct bits
{
  unsigned long long fraction:52 __attribute__ ((packed));
  unsigned int exp:11 __attribute__ ((packed));
  unsigned int sign:1 __attribute__ ((packed));
} __attribute__ ((packed));

double d = 1.0;

int
main ()
{
  struct bits *p;
  unsigned long long *pll;

  printf ("%zu\n", sizeof (struct bits));
  p = (struct bits *)&d;
  printf ("%llx %x %x\n", (unsigned long long) p->fraction, p->exp, p->sign);
  pll = (unsigned long long*)&d;
  printf ("%llx\n", *pll);
  return 0;
}

Reply via email to