OSDN Git Service

PR c++/44157
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / opt / inline3.C
1 // PR opt/6793
2 // We failed to supress inlining of a varargs function when it's a template.
3 // { dg-do compile }
4 // { dg-options "-O3" }
5
6 #include <stdarg.h>
7
8 typedef __SIZE_TYPE__ size_t;
9
10 template < class Type > class VectorNd
11 {
12   size_t size;
13   Type *data;
14  public:
15
16   VectorNd (size_t _size, size_t count, ...)
17         : size (_size)
18   {
19     data = new Type[size];
20
21     va_list ap;
22
23     va_start (ap, count);
24
25     for (size_t i = 0; i < count; i++)
26       data[i] = va_arg (ap, Type);
27
28     va_end (ap);
29   }
30
31   ~VectorNd ()
32   {
33     delete [] data;
34   }
35 };
36
37 int main ()
38 {
39   VectorNd <double> vector (3, 3, 1.0, 2.0, 3.0);
40 }