diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2010-04-28 08:34:01 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2010-04-28 08:34:01 +0000 |
commit | 4b414c93f0d6e1e70bff5eaca0fb8f066f793883 (patch) | |
tree | 8d11fc6717643399c2039596ee4aaf922b4469c5 /gcc/testsuite/g++.dg | |
parent | 012e6a1e049a8b2706203876ee1418140842fcb3 (diff) | |
download | gcc-4b414c93f0d6e1e70bff5eaca0fb8f066f793883.zip gcc-4b414c93f0d6e1e70bff5eaca0fb8f066f793883.tar.gz gcc-4b414c93f0d6e1e70bff5eaca0fb8f066f793883.tar.bz2 |
re PR c++/9335 (repeated diagnostic when maximum template depth is exceeded)
2010-04-28 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/9335
cp/
* error.c (print_instantiation_partial_context_line): Handle
recursive instantiation.
(print_instantiation_partial_context): Likewise.
testsuite/
* g++.dg/template/recurse2.C: Update
* g++.dg/template/recurse.C: Update.
* g++.dg/template/pr23510.C: Update.
* lib/prune.exp: Filter out 'recursively instantiated'.
From-SVN: r158823
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r-- | gcc/testsuite/g++.dg/template/pr23510.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/recurse.C | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/recurse2.C | 1 |
3 files changed, 3 insertions, 3 deletions
diff --git a/gcc/testsuite/g++.dg/template/pr23510.C b/gcc/testsuite/g++.dg/template/pr23510.C index a0806e2..b9e9889 100644 --- a/gcc/testsuite/g++.dg/template/pr23510.C +++ b/gcc/testsuite/g++.dg/template/pr23510.C @@ -4,7 +4,7 @@ template<unsigned int nFactor> struct Factorial { enum { nValue = nFactor * Factorial<nFactor - 1>::nValue }; // { dg-error "depth exceeds maximum" } - // { dg-message "skipping 5 instantiation contexts" "" { target *-*-* } 6 } + // { dg-message "recursively instantiated" "" { target *-*-* } 6 } // { dg-error "incomplete type" "" { target *-*-* } 6 } } diff --git a/gcc/testsuite/g++.dg/template/recurse.C b/gcc/testsuite/g++.dg/template/recurse.C index 17fe186..448c347 100644 --- a/gcc/testsuite/g++.dg/template/recurse.C +++ b/gcc/testsuite/g++.dg/template/recurse.C @@ -8,8 +8,7 @@ template <int I> struct F F<I+1> f; // { dg-error "incomplete type" "incomplete" } // { dg-bogus "exceeds maximum.*exceeds maximum" "exceeds" { xfail *-*-* } 8 } // { dg-error "exceeds maximum" "exceeds" { xfail *-*-* } 8 } - return f()*I; // { dg-message "instantiated" "recurse" } - // { dg-message "skipping 40 instantiation contexts" "" { target *-*-* } 11 } + return f()*I; // { dg-message "recursively instantiated" "recurse" } } }; diff --git a/gcc/testsuite/g++.dg/template/recurse2.C b/gcc/testsuite/g++.dg/template/recurse2.C index cf085e0..b9767df 100644 --- a/gcc/testsuite/g++.dg/template/recurse2.C +++ b/gcc/testsuite/g++.dg/template/recurse2.C @@ -3,5 +3,6 @@ template <int N> struct X { static const int value = X<N-1>::value; // { dg-error "instantiation|incomplete" } + // { dg-message "recursively instantiated" "" { target *-*-* } 5 } }; template struct X<1000>; |