* template10.C: New test.
authorAlexandre Oliva <oliva@lsd.ic.unicamp.br>
Wed, 22 Dec 1999 04:52:11 +0000 (04:52 +0000)
committerAlexandre Oliva <oliva@gcc.gnu.org>
Wed, 22 Dec 1999 04:52:11 +0000 (04:52 +0000)
From-SVN: r31062

gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
gcc/testsuite/g++.old-deja/g++.oliva/template10.C [new file with mode: 0644]

index 9d636f9..274b850 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-22  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+       * template10.C: New test.
+
 1999-11-21  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
 
        * delete2.C, delete3.C, delete4.C, delete5.C: New tests.
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/template10.C b/gcc/testsuite/g++.old-deja/g++.oliva/template10.C
new file mode 100644 (file)
index 0000000..2ee3934
--- /dev/null
@@ -0,0 +1,22 @@
+// Build don't link:
+
+// Copyright (C) 1999 Free Software Foundation
+
+// by Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+// bug report by Martin Sebor <sebor@roguewave.com>
+// from C++ Standard [temp.expl.spec]/5
+
+/* Members of explicitly specialized template classes shall not be
+   defined with template-specialization syntax.  The example in the
+   Standard contains a definition of a member function of the
+   explicitly specialized class template, but the paragraph refers to
+   members in general, not only member functions.  */
+
+template<class T> struct A {};
+
+template<> struct A<int> {
+  static const bool a, b;
+};
+
+const bool A<int>::a; // ok
+template<> const bool A<int>::b; // ERROR - bad specialization - XFAIL *-*-*