aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/template/ptrmem7.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/template/ptrmem7.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/template/ptrmem7.C29
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/template/ptrmem7.C b/gcc-4.9/gcc/testsuite/g++.dg/template/ptrmem7.C
new file mode 100644
index 000000000..cd907f212
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.dg/template/ptrmem7.C
@@ -0,0 +1,29 @@
+// { dg-do compile }
+// Origin: <togawa at acm dot arg>
+// c++/2094: unsupported 'ptrmem_cst' in type unification
+
+struct R
+{
+ int i;
+};
+
+struct S
+{
+ int i;
+ int j;
+};
+
+struct S2 : S
+{};
+
+template<int S::*p, typename>
+struct X
+{
+ X ();
+ template<typename U> X(const X<p,U> &);
+};
+
+X<&S::i,S> x = X<&S::i,S>();
+X<&S::i,S> x2 = X<&S2::i,S>();
+X<&S::i,S> y = X<&S::j,S>(); // { dg-error "" }
+X<&S::i,S> z = X<&R::i,S>(); // { dg-error "" }