(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pragma-pack-2.c
       1  /* On Solaris, #pragma pack should accept macro expansion.  */
       2  
       3  /* { dg-do run { target *-*-solaris2.* } } */
       4  
       5  extern void abort (void);
       6  
       7  struct {
       8          char one;
       9          long two;
      10  } defaultalign;
      11  
      12  #define ALIGNHIGH 16
      13  
      14  #pragma pack(ALIGNHIGH)
      15  struct {
      16          char one;
      17          long two;
      18  } sixteen;
      19  
      20  #define ALIGN1(X) 1
      21  #pragma pack(ALIGN1(4))
      22  struct {
      23          char one;
      24          long two;
      25  } two;
      26  
      27  #define ALIGN2(X) X
      28  #pragma pack(ALIGN2(2))
      29  struct {
      30          char one;
      31          long two;
      32  } three;
      33  
      34  #define EMPTY
      35  #pragma pack(EMPTY)
      36  struct {
      37          char one;
      38          long two;
      39  } resetalign;
      40  
      41  main()
      42  {
      43          if(sizeof(sixteen) < sizeof(defaultalign)) abort();
      44          if(sizeof(two) >= sizeof(defaultalign)) abort();
      45          if(sizeof(three) <= sizeof(two)) abort();
      46          if(sizeof(resetalign) != sizeof(defaultalign)) abort();
      47  	return 0;
      48  }