(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
strlenopt-48.c
       1  /* PR tree-optimization/86400 - set<string>::set<char (*)[2]) constructor
       2     does not work with array argument
       3     Verify that strlen() calls with one-character array elements of
       4     multidimensional arrays are still folded.
       5     { dg-do compile }
       6     { dg-options "-O2 -Wall -fdump-tree-optimized" } */
       7  
       8  #include "strlenopt.h"
       9  
      10  void f (void)
      11  {
      12    extern char a[2][1];
      13    int n = strlen (a[1]);
      14    if (n >= sizeof a)
      15      abort();
      16  }
      17  
      18  void g (void)
      19  {
      20    extern char b[3][2][1];
      21    int n = strlen (b[2][1]);
      22    if (n >= sizeof b)
      23      abort();
      24  }
      25  
      26  void h (void)
      27  {
      28    extern char c[4][3][2][1];
      29    int n = strlen (c[3][2][1]);
      30    if (n >= sizeof c)
      31      abort();
      32  }
      33  
      34  /* { dg-final { scan-tree-dump-times "strlen1" 0 "optimized" } }
      35     { dg-final { scan-tree-dump-times "abort" 0 "optimized" } } */