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