aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/template/crash123.C19
-rw-r--r--gcc/testsuite/g++.dg/template/crash124.C21
3 files changed, 46 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6c03e26..39c6b27 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/50436
+ * g++.dg/template/crash123.C: New.
+ * g++.dg/template/crash124.C: Likewise.
+
2016-05-24 Martin Sebor <msebor@redhat.com>
PR c++/71147
diff --git a/gcc/testsuite/g++.dg/template/crash123.C b/gcc/testsuite/g++.dg/template/crash123.C
new file mode 100644
index 0000000..20a4961
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash123.C
@@ -0,0 +1,19 @@
+// PR c++/50436
+
+template <bool> struct VI {};
+template <typename T>
+struct IP
+{
+ static const bool r = IP<T>::r; // { dg-error "depth" }
+};
+template <typename T> struct V
+{
+ VI<IP<T>::r> vi;
+};
+struct X;
+struct Y
+{
+ V<X> v; // { dg-message "from here" }
+};
+
+// { dg-prune-output "compilation terminated" }
diff --git a/gcc/testsuite/g++.dg/template/crash124.C b/gcc/testsuite/g++.dg/template/crash124.C
new file mode 100644
index 0000000..4931aa8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash124.C
@@ -0,0 +1,21 @@
+// PR c++/50436
+
+template <bool> struct VI {};
+template <typename T>
+struct IP
+{
+ static const bool r = IP<T>::r; // { dg-error "depth" }
+};
+template <typename T>
+struct V
+{
+ static const bool r = IP<T>::r;
+ VI<r> vi;
+};
+struct X;
+struct Y
+{
+ V<X> v; // { dg-message "from here" }
+}
+
+// { dg-prune-output "compilation terminated" }