]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
explicit72.C: ensure that char and (un)signed char are different types for template...
authorReid M. Pinchback <reidmp@MIT.EDU>
Thu, 3 Sep 1998 22:30:30 +0000 (22:30 +0000)
committerAlexandre Oliva <oliva@gcc.gnu.org>
Thu, 3 Sep 1998 22:30:30 +0000 (22:30 +0000)
* g++.old-deja/g++.pt/explicit72.C: ensure that char and
(un)signed char are different types for template specialization
purposes.

From-SVN: r22226

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

index 6d278b33e88b4a8d830b56fff8e5851e4cd71c23..47a6f5015364f9d105ecf63163a6a6b7f5eff340 100644 (file)
@@ -1,3 +1,9 @@
+1998-09-04  Reid M. Pinchback  <reidmp@MIT.EDU>, Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+       * g++.old-deja/g++.pt/explicit72.C: ensure that char and
+       (un)signed char are different types for template specialization
+       purposes.
+
 Thu Sep  3 00:40:32 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
 
        * lib/{objc.exp,objc-torture.exp}: New files for objc testing harness.
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C
new file mode 100644 (file)
index 0000000..bc9edfb
--- /dev/null
@@ -0,0 +1,21 @@
+// Build don't link:
+// Contributed by Reid M. Pinchback <reidmp@MIT.EDU>
+// Adapted by Alexandre Oliva <oliva@dcc.unicamp.br>
+// plain char, signed char and unsigned char are distinct types
+
+template <class X, class Y> class bug {};
+template <class X> class bug<X,char> { typedef char t; };
+template <class X> class bug<X,unsigned char> { typedef unsigned char t; };
+template <class X> class bug<X,signed char> { typedef signed char t; };
+template <class X> class bug<char,X> { typedef char t; };
+template <class X> class bug<unsigned char,X> { typedef unsigned char t; };
+template <class X> class bug<signed char,X> { typedef signed char t; };
+
+void foo() {
+  bug<int,char>::t();
+  bug<int,signed char>::t();
+  bug<int,unsigned char>::t();
+  bug<char,int>::t();
+  bug<signed char,int>::t();
+  bug<unsigned char,int>::t();
+}