(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
bf-spl1.c
       1  /* { dg-do run { target m68k-*-* fido-*-* sparc-*-* } } */
       2  /* { dg-options { -O2 } } */
       3  
       4  extern void abort (void);
       5  
       6  typedef float SFtype __attribute__ ((mode (SF)));
       7  typedef float DFtype __attribute__ ((mode (DF)));
       8  
       9  typedef int HItype __attribute__ ((mode (HI)));
      10  typedef int SItype __attribute__ ((mode (SI)));
      11  typedef int DItype __attribute__ ((mode (DI)));
      12  
      13  typedef unsigned int UHItype __attribute__ ((mode (HI)));
      14  typedef unsigned int USItype __attribute__ ((mode (SI)));
      15  typedef unsigned int UDItype __attribute__ ((mode (DI)));
      16  
      17  typedef UDItype fractype;
      18  typedef USItype halffractype;
      19  typedef DFtype FLO_type;
      20  typedef DItype intfrac;
      21  
      22  
      23  typedef union
      24  {
      25    long long foo;
      26    FLO_type value;
      27    struct
      28      {
      29        fractype fraction:52 __attribute__ ((packed));
      30        unsigned int exp:11 __attribute__ ((packed));
      31        unsigned int sign:1 __attribute__ ((packed));
      32      }
      33    bits;
      34  } FLO_union_type;
      35  
      36  void foo (long long a);
      37  long long x; 
      38  
      39  void
      40  pack_d ()
      41  {
      42    FLO_union_type dst = { 0x0123456789abcdefLL };
      43  
      44    x = dst.bits.fraction;
      45  }
      46  
      47  int
      48  main ()
      49  {
      50    pack_d ();
      51    foo (x);
      52    return 0;
      53  }
      54  
      55  void
      56  foo (long long a)
      57  {
      58    if (a != 0x0123456789abcLL)
      59      abort ();
      60  }