From 01e721f30b5f848446d2606342de4be367cb1f48 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 20 Sep 2012 14:05:19 +0000 Subject: re PR c++/52432 ([C++11] -fdump-tree-gimple causes ICE: Error reporting routines re-entered.) /cp 2012-09-20 Paolo Carlini PR c++/52432 * pt.c (tsubst_copy_and_build): If tf_error is not set in the complain argument don't call unqualified_name_lookup_error. /testsuite 2012-09-20 Paolo Carlini PR c++/52432 * g++.dg/cpp0x/decltype32.C: Tweak. From-SVN: r191564 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/pt.c | 3 ++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/decltype32.C | 4 ++-- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0427a19..0a5292f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2012-09-20 Paolo Carlini + + PR c++/52432 + * pt.c (tsubst_copy_and_build): If tf_error is not set in the complain + argument don't call unqualified_name_lookup_error. + 2012-09-19 Marc Glisse PR c++/54581 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 16952bf..d00470e 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -13771,7 +13771,8 @@ tsubst_copy_and_build (tree t, } if (TREE_CODE (function) == IDENTIFIER_NODE) { - unqualified_name_lookup_error (function); + if (complain & tf_error) + unqualified_name_lookup_error (function); release_tree_vector (call_args); RETURN (error_mark_node); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8283c8e..e419eb1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-09-20 Paolo Carlini + + PR c++/52432 + * g++.dg/cpp0x/decltype32.C: Tweak. + 2012-09-20 Marc Glisse * gcc.dg/tree-ssa/forwprop-19.c: Check in forwprop1. diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype32.C b/gcc/testsuite/g++.dg/cpp0x/decltype32.C index 6cb637b..ac1f5d1 100644 --- a/gcc/testsuite/g++.dg/cpp0x/decltype32.C +++ b/gcc/testsuite/g++.dg/cpp0x/decltype32.C @@ -3,10 +3,10 @@ template auto make_array(const T& il) -> -decltype(make_array(il)) // { dg-error "not declared" } +decltype(make_array(il)) // { dg-error "not declared|no matching|exceeds" } { } int main() { - int z = make_array(1); // { dg-error "no match" } + int z = make_array(1); // { dg-error "no matching" } } -- cgit v1.1