'gcc-3_1-branch'.
From-SVN: r54688
--- /dev/null
+// PR opt/6793
+// We failed to supress inlining of a varargs function when it's a template.
+// { dg-do compile }
+// { dg-options "-O3" }
+
+#include <stdarg.h>
+
+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 <double> vector (3, 3, 1.0, 2.0, 3.0);
+}