diff options
| -rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/template/crash123.C | 19 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/template/crash124.C | 21 |
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" } |
