aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/semantics.c8
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 943eef3..0fc1c1e 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-12 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR c++/29048
+ * semantics.c (finish_qualified_id_expr): Avoid duplicate access
+ check here, too.
+
2008-02-12 Jakub Jelinek <jakub@redhat.com>
PR c++/34862
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 928975a..49dd80e 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1620,8 +1620,12 @@ finish_qualified_id_expr (tree qualifying_class,
transformation, as there is no "this" pointer. */
;
else if (TREE_CODE (expr) == FIELD_DECL)
- expr = finish_non_static_data_member (expr, current_class_ref,
- qualifying_class);
+ {
+ push_deferring_access_checks (dk_no_check);
+ expr = finish_non_static_data_member (expr, current_class_ref,
+ qualifying_class);
+ pop_deferring_access_checks ();
+ }
else if (BASELINK_P (expr) && !processing_template_decl)
{
tree fns;