(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
gnu2x-attrs-1.c
       1  /* Test C2x attribute syntax.  Test GNU attributes appertain to
       2     appropriate constructs.  */
       3  /* { dg-do compile } */
       4  /* { dg-require-alias "" } */
       5  /* { dg-options "-std=gnu2x" } */
       6  
       7  void f (void) {};
       8  
       9  [[gnu::alias("f")]] void g (void); /* { dg-error "only weak" "" { target *-*-darwin* } } */
      10  
      11  void [[gnu::alias("f")]] h (void); /* { dg-warning "does not apply to types" } */
      12  
      13  struct [[gnu::packed]] s { int a; char b; };
      14  _Static_assert (sizeof (struct s) == (sizeof (int) + sizeof (char)));
      15  
      16  int
      17  f2 (void)
      18  {
      19    [[gnu::deprecated]] int a = 1;
      20    return a; /* { dg-warning "deprecated" } */
      21  }
      22  
      23  int
      24  f3 (void)
      25  {
      26    int a [[gnu::deprecated]] = 1;
      27    return a; /* { dg-warning "deprecated" } */
      28  }
      29  
      30  struct s2 { [[gnu::deprecated]] int a; int b [[gnu::deprecated]]; } x;
      31  
      32  int
      33  f4 (void)
      34  {
      35    return x.a; /* { dg-warning "deprecated" } */
      36  }
      37  
      38  int
      39  f5 (void)
      40  {
      41    return x.b; /* { dg-warning "deprecated" } */
      42  }
      43  
      44  enum e { E1 [[gnu::deprecated]] };
      45  
      46  enum e
      47  f6 (void)
      48  {
      49    return E1; /* { dg-warning "deprecated" } */
      50  }
      51  
      52  int
      53  f7 ([[gnu::deprecated]] int y)
      54  {
      55    return y; /* { dg-warning "deprecated" } */
      56  }
      57  
      58  union [[gnu::deprecated]] u { int x; };
      59  
      60  void
      61  f8 (void)
      62  {
      63    union u var; /* { dg-warning "deprecated" } */
      64  }
      65  
      66  enum [[gnu::deprecated]] edep { E2 };
      67  
      68  void
      69  f9 (void)
      70  {
      71    enum edep var; /* { dg-warning "deprecated" } */
      72  }