summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/strlenopt-35.c
blob: d175fd7ff5051048907cdd90e0b5f6fbcf3bf96c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* { dg-do run } */
/* { dg-options "-O2 -fdump-tree-strlen" } */

#include "strlenopt.h"

volatile int v;

size_t
f1 (char *a1)
{
  v += 1;
  size_t x = strlen (a1);
  char *a2 = a1 + x;
  a2[0] = '1';
  a2[1] = '2';
  a2[2] = '3';
  a2[3] = 0;
  return strlen (a1);
}

int
main ()
{
  char a[30];
  strcpy (a, "abcd");
  if (f1 (a) != 7)
    abort ();
  return 0;
}

/* { dg-final { scan-tree-dump-times "strlen \\(" 1 "strlen1" } } */