diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2016-05-24 21:32:29 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2016-05-24 21:32:29 +0000 |
commit | b2dc9c3b2012f7bf7bd3e69bac8ea2fd1c470975 (patch) | |
tree | 1b93cf5cf43508f63fe769ff40ed056b26ad6290 /gcc | |
parent | 66f90a1761f1e819d1dbffff2056836b5d39d545 (diff) | |
download | gcc-b2dc9c3b2012f7bf7bd3e69bac8ea2fd1c470975.zip gcc-b2dc9c3b2012f7bf7bd3e69bac8ea2fd1c470975.tar.gz gcc-b2dc9c3b2012f7bf7bd3e69bac8ea2fd1c470975.tar.bz2 |
re PR c++/50436 (Crash or hang on invalid template code)
2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50436
* g++.dg/template/crash123.C: New.
* g++.dg/template/crash124.C: Likewise.
From-SVN: r236671
Diffstat (limited to 'gcc')
-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" } |