From b2dc9c3b2012f7bf7bd3e69bac8ea2fd1c470975 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 24 May 2016 21:32:29 +0000 Subject: [PATCH] re PR c++/50436 (Crash or hang on invalid template code) 2016-05-24 Paolo Carlini PR c++/50436 * g++.dg/template/crash123.C: New. * g++.dg/template/crash124.C: Likewise. From-SVN: r236671 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/g++.dg/template/crash123.C | 19 +++++++++++++++++++ gcc/testsuite/g++.dg/template/crash124.C | 21 +++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 gcc/testsuite/g++.dg/template/crash123.C create mode 100644 gcc/testsuite/g++.dg/template/crash124.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6c03e26718b..39c6b27cebf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-05-24 Paolo Carlini + + PR c++/50436 + * g++.dg/template/crash123.C: New. + * g++.dg/template/crash124.C: Likewise. + 2016-05-24 Martin Sebor 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 00000000000..20a49619c6f --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash123.C @@ -0,0 +1,19 @@ +// PR c++/50436 + +template struct VI {}; +template +struct IP +{ + static const bool r = IP::r; // { dg-error "depth" } +}; +template struct V +{ + VI::r> vi; +}; +struct X; +struct Y +{ + V 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 00000000000..4931aa8e9c6 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash124.C @@ -0,0 +1,21 @@ +// PR c++/50436 + +template struct VI {}; +template +struct IP +{ + static const bool r = IP::r; // { dg-error "depth" } +}; +template +struct V +{ + static const bool r = IP::r; + VI vi; +}; +struct X; +struct Y +{ + V v; // { dg-message "from here" } +} + +// { dg-prune-output "compilation terminated" } -- 2.30.2