(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr32338-1.c
       1  /* PR target/32338 */
       2  /* { dg-do link } */
       3  /* { dg-options "-O2 -fno-omit-frame-pointer" } */
       4  
       5  struct S
       6  {
       7  };
       8  
       9  int
      10  __attribute__((noinline))
      11  foo (struct S *d)
      12  {
      13    return 2;
      14  }
      15  
      16  int
      17  __attribute__((noinline))
      18  bar (struct S *d)
      19  {
      20    return 4;
      21  }
      22  
      23  int
      24  __attribute__((noinline))
      25  fnl (char const *q)
      26  {
      27    return __builtin_strlen (q);
      28  }
      29  
      30  int
      31  __attribute__((noinline))
      32  baz (struct S *d, char const *q)
      33  {
      34    unsigned int len;
      35    len = fnl (q);
      36    if (len > 512)
      37      return bar (d);
      38    return foo (d);
      39  }
      40  
      41  int
      42  main (int argc, char *argv[])
      43  {
      44    if (argc > 30)
      45      return baz ((void *) 0, "abcde");
      46    return 0;
      47  }