OSDN Git Service

PR c++/37276
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / warn / translate-ice-1.C
1 // Test ICE in caching printable names for a function.
2 // { dg-options "-std=c++98 -pedantic -O2" }
3
4 void g (int a) __attribute__((warning("g")));
5 void g2 (int a, int *p);
6 static inline __attribute__((__always_inline__)) void
7 gg (int a)
8 {
9   if (a == 0)
10     return g(a); // { dg-warning "attribute" }
11   __extension__ int v[a];
12   return g2(a, v);
13 }
14
15 void h (int a) __attribute__((warning("h")));
16 void h2 (int a, int *p);
17 static inline __attribute__((__always_inline__)) void
18 hh (int a)
19 {
20   if (a == 0)
21     return h(a); // { dg-warning "attribute" }
22   __extension__ int v[a];
23   return h2(a, v);
24 }
25
26 void i (int a) __attribute__((warning("i")));
27 void i2 (int a, int *p);
28 static inline __attribute__((__always_inline__)) void
29 ii (int a)
30 {
31   if (a == 0)
32     return i(a); // { dg-warning "attribute" }
33   __extension__ int v[a];
34   return i2(a, v);
35 }
36
37 void
38 f (void)
39 {
40   long long l; // { dg-warning "long long" }
41   const char *p = __PRETTY_FUNCTION__;
42   gg(0);
43   hh(0);
44   ii(0);
45 }