(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr81292-2.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -fdump-tree-strlen" } */
       3  
       4  #include "strlenopt.h"
       5  
       6  char a[] = { 0, 'a', 0, 'b', 'c', 0, 'd', 'e', 'f', 0 };
       7  
       8  int __attribute__ ((noinline, noclone))
       9  f1 (void)
      10  {
      11    a[0] = '1';
      12    a[strlen (a)] = '2';
      13    a[strlen (a)] = '3';
      14    return strlen (a);
      15  }
      16  
      17  int __attribute__ ((noinline, noclone))
      18  f2 (char *a)
      19  {
      20    a[0] = '1';
      21    a[strlen (a)] = '2';
      22    a[strlen (a)] = '3';
      23    return strlen (a);
      24  }
      25  
      26  int
      27  main (void)
      28  {
      29    char b[] = { 0, 0, 'a', 'b', 0, 0 };
      30    if (f1 () != 9 || f2 (b) != 5)
      31      __builtin_abort ();
      32    return 0;
      33  }
      34  
      35  /* { dg-final { scan-tree-dump-times "strlen \\(" 6 "strlen1" } } */