// PR opt/6793 // We failed to supress inlining of a varargs function when it's a template. // { dg-do compile } // { dg-options "-O3" } #include typedef __SIZE_TYPE__ size_t; template < class Type > class VectorNd { size_t size; Type *data; public: VectorNd (size_t _size, size_t count, ...) : size (_size) { data = new Type[size]; va_list ap; va_start (ap, count); for (size_t i = 0; i < count; i++) data[i] = va_arg (ap, Type); va_end (ap); } ~VectorNd () { delete [] data; } }; int main () { VectorNd vector (3, 3, 1.0, 2.0, 3.0); }