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
8typedef __SIZE_TYPE__ size_t;
9
10template < 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
37int main ()
38{
39  VectorNd <double> vector (3, 3, 1.0, 2.0, 3.0);
40}
41