summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/spec14.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/template/spec14.C')
-rw-r--r--gcc/testsuite/g++.dg/template/spec14.C18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/spec14.C b/gcc/testsuite/g++.dg/template/spec14.C
new file mode 100644
index 000000000..9b59565c4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec14.C
@@ -0,0 +1,18 @@
+// { dg-do compile }
+// Origin: <weissr at informatik dot uni-tuebingen dot de>
+// PR c++/3671: Non-type enum parameters must not be converted
+
+enum T1 {a};
+enum T2 {b};
+
+struct Y {
+ template <T1 i> void foo() {}
+ template <T2 i> void foo() {}
+};
+
+struct Z {
+ template <T1 i> void foo() {}
+};
+
+template void Y::foo<b> ();
+template void Z::foo<b> (); // { dg-error "" }