OSDN Git Service

2012-01-03 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / pr32338-1.c
1 /* PR target/32338 */
2 /* { dg-do link } */
3 /* { dg-options "-O2 -fno-omit-frame-pointer" } */
4
5 struct S
6 {
7 };
8
9 int
10 __attribute__((noinline))
11 foo (struct S *d)
12 {
13   return 2;
14 }
15
16 int
17 __attribute__((noinline))
18 bar (struct S *d)
19 {
20   return 4;
21 }
22
23 int
24 __attribute__((noinline))
25 fnl (char const *q)
26 {
27   return __builtin_strlen (q);
28 }
29
30 int
31 __attribute__((noinline))
32 baz (struct S *d, char const *q)
33 {
34   unsigned int len;
35   len = fnl (q);
36   if (len > 512)
37     return bar (d);
38   return foo (d);
39 }
40
41 int
42 main (int argc, char *argv[])
43 {
44   if (argc > 30)
45     return baz ((void *) 0, "abcde");
46   return 0;
47 }