summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/pr42049.c
blob: b2ebe52ef8d1ed3cf31cc816d07d47d736f8406e (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
/* PR middle-end/42049 */

extern char *strcpy (char *s1, const char *s2);
struct S { char s[4]; };

int
foo (int x, char **y)
{
  char const *a;
  char const *b;
  struct S s[9];
  long i;
  if (x > 1)
    a = y[1];
  else
    a = "abc";
  if (x > 2)
    b = y[2];
  else
    b = "def";
  strcpy (s[0].s, a);
  strcpy (s[1].s, b);
  for (i = 2; i < x - 2 && i < 8; i++)
    strcpy (s[i].s, y[i + 1]);
  s[i].s[0] = '\0';
  return 0;
}