From 2516ccfe927c61a98bdd561eea90c7229a6a3cbc Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 17 Jun 2011 16:07:13 -0400 Subject: [PATCH] semantics.c (finish_non_static_data_member): Preserve dereference in template. * semantics.c (finish_non_static_data_member): Preserve dereference in template. From-SVN: r175152 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/semantics.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7d0a799f90a..010f1ddaa4f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2011-06-17 Jason Merrill + + * semantics.c (finish_non_static_data_member): Preserve dereference + in template. + 2011-06-16 Jason Merrill PR c++/44160 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index bad7acbb671..a4366238186 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -1557,7 +1557,7 @@ finish_non_static_data_member (tree decl, tree object, tree qualifying_scope) tree type = TREE_TYPE (decl); if (TREE_CODE (type) == REFERENCE_TYPE) - type = TREE_TYPE (type); + /* Quals on the object don't matter. */; else { /* Set the cv qualifiers. */ @@ -1572,7 +1572,8 @@ finish_non_static_data_member (tree decl, tree object, tree qualifying_scope) type = cp_build_qualified_type (type, quals); } - return build_min (COMPONENT_REF, type, object, decl, NULL_TREE); + return (convert_from_reference + (build_min (COMPONENT_REF, type, object, decl, NULL_TREE))); } /* If PROCESSING_TEMPLATE_DECL is nonzero here, then QUALIFYING_SCOPE is also non-null. Wrap this in a SCOPE_REF -- 2.30.2