Dead
[official-gcc.git] / gomp-20050608-branch / gcc / testsuite / gcc.c-torture / execute / string-opt-17.c
blob76a351bfb6b86207515bcb24ba9347aa6b9f48c6
1 /* Copyright (C) 2003 Free Software Foundation.
3 Test strcpy optimizations don't evaluate side-effects twice.
5 Written by Jakub Jelinek, June 23, 2003. */
7 typedef __SIZE_TYPE__ size_t;
8 extern char *strcpy (char *, const char *);
9 extern int memcmp (const void *, const void *, size_t);
10 extern void abort (void);
11 extern void exit (int);
13 size_t
14 test1 (char *s, size_t i)
16 strcpy (s, "foobarbaz" + i++);
17 return i;
20 size_t
21 check2 (void)
23 static size_t r = 5;
24 if (r != 5)
25 abort ();
26 return ++r;
29 void
30 test2 (char *s)
32 strcpy (s, "foobarbaz" + check2 ());
35 int
36 main (void)
38 char buf[10];
39 if (test1 (buf, 7) != 8 || memcmp (buf, "az", 3))
40 abort ();
41 test2 (buf);
42 if (memcmp (buf, "baz", 4))
43 abort ();
44 exit (0);