OSDN Git Service

PR rtl-optimization/52139
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / tree-ssa / tailcall-6.c
1 /* PR tree-optimization/43904.  */
2 /* { dg-do run } */
3 /* { dg-options "-O1 -foptimize-sibling-calls" } */
4
5 typedef __SIZE_TYPE__ size_t;
6 extern void abort(void);
7
8 void *memcpy(void *dest, const void *src, size_t n);
9
10 void
11 buggy_init(void *ptr, size_t size)
12 {
13   const char *str = "Hello world!";
14   memcpy(ptr, &str, size);
15 }
16
17 void
18 expose_bug(void *ptr, size_t size)
19 {
20   const char *str;
21   memcpy(&str, ptr, size);
22   if (*str != 'H')
23     abort ();
24 }
25
26 int
27 main()
28 {
29   const char *ptr;
30   buggy_init(&ptr, sizeof(ptr));
31   expose_bug(&ptr, sizeof(ptr));
32   return 0;
33 }