diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 71fed72eb921..970b6dc51524 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 ed45324b9ab6..c0c61c5a4262 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 cecd2a13ba0b..0d4378cfc0ab 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