From: Dodji Seketeli Date: Tue, 4 Aug 2009 19:49:48 +0000 (+0000) Subject: re PR c++/39987 (Rejects default argument that is a template via access failure) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3693f2667550f29bde20f910c8e9ba4854114878;p=gcc.git re PR c++/39987 (Rejects default argument that is a template via access failure) 2009-08-04 Dodji Seketeli gcc/cp/ChangeLog: PR c++/39987 * pt.c (tsubst_default_argument): Let access checks of the default argument happen in the context of the current function. gcc/testsuite/ChangeLog: PR c++/39987 * g++.dg/overload/defarg4.C: New test. From-SVN: r150467 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 71fed72eb92..970b6dc5152 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2009-08-04 Dodji Seketeli + + PR c++/39987 + * pt.c (tsubst_default_argument): Let access checks of the + default argument happen in the context of the current function. + 2009-08-04 Manuel López-Ibáñez PR c++/16696 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index ed45324b9ab..c0c61c5a426 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -8253,11 +8253,11 @@ tsubst_default_argument (tree fn, tree type, tree arg) cp_function_chain->x_current_class_ref = saved_class_ref; } - pop_access_scope (fn); - /* Make sure the default argument is reasonable. */ arg = check_default_argument (type, arg); + pop_access_scope (fn); + return arg; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cecd2a13ba0..0d4378cfc0a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-08-04 Dodji Seketeli + + PR c++/39987 + * g++.dg/overload/defarg4.C: New test. + 2009-08-04 Manuel López-Ibáñez PR c++/16696