(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
ipa/
ipa-sra-7.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O3" } */
       3  
       4  typedef unsigned int myint __attribute__((aligned(1)));
       5  
       6  typedef struct __attribute__((packed)) S {
       7    unsigned a, b, c;
       8  } SS;
       9  
      10  typedef SS __attribute__((aligned(1))) SSS;
      11  
      12  
      13  static unsigned int __attribute__ ((noinline))
      14  get_a (SSS *p)
      15  {
      16    return p->a;
      17  };
      18  
      19  static int __attribute__ ((noinline, noclone))
      20  foo (SS *p)
      21  {
      22    int r = (int) get_a(p) + 2;
      23    return r;
      24  }
      25  
      26  char buf[512];
      27  
      28  static SSS * __attribute__ ((noinline, noclone))
      29  get_sss (void)
      30  {
      31    return (SSS *)(buf + 1);
      32  }
      33  
      34  
      35  int
      36  main(int argc, char *argv[])
      37  {
      38    SSS *p = get_sss();
      39    if (foo(p) != 2)
      40      __builtin_abort ();
      41    return 0;
      42  }