summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-11 16:16:47 +0000
committerlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>2003-05-11 16:16:47 +0000
commite8a37e5343a106d07748767417f494885cdff5d5 (patch)
treede5077a3e2d0272f0d92a22b89ad9dfed04c19fb
parent6011140f85e0d4cd56c98cddda482e49f46fa462 (diff)
downloadgcc-e8a37e5343a106d07748767417f494885cdff5d5.tar.gz
* method.c (synthesize_method): Call push/pop_deferring_access_checks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66694 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/method.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a11a50218b3..8e19ceec6cd 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 12fa9230b4c..51af020f385 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 &