diff options
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/method.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a11a502..8e19cee 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + * method.c (synthesize_method): Call push/pop_deferring_access_checks. + +2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> + PR c++/10230, c++/10481 * semantics.c (finish_non_static_data_member): Handle when the non-static member is not from a base of the current class type. diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 12fa923..51af020 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -741,6 +741,10 @@ synthesize_method (tree fndecl) return; } + /* We may be in the middle of deferred access check. Disable + it now. */ + push_deferring_access_checks (dk_no_deferred); + if (! context) push_to_top_level (); else if (nested) @@ -790,6 +794,8 @@ synthesize_method (tree fndecl) pop_from_top_level (); else if (nested) pop_function_context_from (context); + + pop_deferring_access_checks (); } /* Use EXTRACTOR to locate the relevant function called for each base & |