Reduced testcase of a 252.eon (SPEC2000) problem.
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Mar 2002 19:27:05 +0000 (19:27 +0000)
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Mar 2002 19:27:05 +0000 (19:27 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50204 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/g++.dg/template/wrap1.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/template/wrap1.C b/gcc/testsuite/g++.dg/template/wrap1.C
new file mode 100644 (file)
index 0000000..72f687e
--- /dev/null
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Michael Matz 03 Mar 2002 <matz@suse.de>
+// instance of an actual pattern in 252.eon from SPEC2000
+
+// The last Wrapper<char> once wasn't completed when applying '='.
+
+template <class T>
+class Wrapper {
+  public:
+    Wrapper (T& a);
+    Wrapper (const Wrapper<char>& ref);
+};
+
+template <class T>
+class Element {
+public:
+  T * operator[](int x);
+};
+
+void test()
+{
+  char bla = 42;
+  Element< Wrapper <unsigned char> > elem;
+  elem[1][1] = Wrapper<char> (bla);
+}