(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
ipa/
ipa-sra-ret-nonull.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-ipa-sra-details"  } */
       3  
       4  volatile void *gp;
       5  volatile void *gq;
       6  char buf[16];
       7  
       8  __attribute__((returns_nonnull, noinline))
       9  static char *
      10  foo (char *p, char *q)
      11  {
      12    gq = q;
      13    gp = p;
      14    return q;
      15  }
      16  
      17  __attribute__((returns_nonnull, noinline))
      18  static char *
      19  bar (char *p, char *q)
      20  {
      21    return foo (p, q) + 8;
      22  }
      23  
      24  __attribute__((noipa))
      25  static char *
      26  get_charp (void)
      27  {
      28    return &buf[0];
      29  }
      30  
      31  int
      32  main ()
      33  {
      34    char *r;
      35    asm volatile ("" : : : "memory");
      36    r = bar (get_charp (), get_charp ());
      37    return 0;
      38  }
      39  
      40  /* { dg-final { scan-ipa-dump-times "Will SKIP return." 2 "sra" } } */