(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
pr51628-8.c
       1  /* PR c/51628.  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O" } */
       4  
       5  struct pair_t
       6  {
       7    char x;
       8    int i[4];
       9  } __attribute__ ((packed, aligned (4)));
      10  
      11  extern struct pair_t p;
      12  extern int *x;
      13  extern void bar (int *);
      14  
      15  int *addr = p.i;
      16  /* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
      17  
      18  int *
      19  foo (struct pair_t *p)
      20  {
      21    int *p0, *p1;
      22    p0 = p->i;
      23  /* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
      24    bar (p0);
      25    p1 = &p->i[1];
      26  /* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
      27    bar (p1);
      28    bar (p->i);
      29  /* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
      30    bar (&p->i[2]);
      31  /* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
      32    x = p->i;
      33  /* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
      34    return &p->i[3];
      35  /* { dg-warning "may result in an unaligned pointer value" "" { target { ! default_packed } } .-1 } */
      36  }