(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pragma-align.c
       1  /* Prove that pragma alignment handling works somewhat. */
       2  
       3  /* { dg-do run { target { ! default_packed } } } */
       4  
       5  extern void abort (void);
       6  
       7  struct {
       8          char one;
       9          long two;
      10  } defaultalign;
      11  
      12  #if defined(__LP64__)
      13  #pragma pack(8)
      14  #else
      15  #pragma pack(4)
      16  #endif
      17  struct {
      18          char one;
      19          long two;
      20  } sixteen;
      21  
      22  #pragma pack(1)
      23  struct {
      24          char one;
      25          long two;
      26  } two;
      27  
      28  #pragma pack(2)
      29  struct {
      30          char one;
      31          long two;
      32  } three;
      33  
      34  #pragma pack()
      35  struct {
      36          char one;
      37          long two;
      38  } resetalign;
      39  
      40  main()
      41  {
      42          if(sizeof(sixteen) < sizeof(defaultalign)) abort();
      43          if(sizeof(two) >= sizeof(defaultalign)) abort();
      44          if(sizeof(three) <= sizeof(two)) abort();
      45          if(sizeof(resetalign) != sizeof(defaultalign)) abort();
      46  	return 0;
      47  }