aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2008-02-12 17:26:34 +0000
committerJason Merrill <jason@gcc.gnu.org>2008-02-12 12:26:34 -0500
commit43854f724a2bb2031e45626c43a9e6902c5639e8 (patch)
tree4d389600d867c0074a21231f76233961dc9a6602
parente4d25d9dc3aa117ed3ae7c35bdb190aa33a4550a (diff)
downloadgcc-43854f724a2bb2031e45626c43a9e6902c5639e8.zip
gcc-43854f724a2bb2031e45626c43a9e6902c5639e8.tar.gz
gcc-43854f724a2bb2031e45626c43a9e6902c5639e8.tar.bz2
re PR c++/29048 ("`x' is private" error duplicated when scope specified)
PR c++/29048 * semantics.c (finish_qualified_id_expr): Avoid duplicate access check here, too. From-SVN: r132261
-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;