From: Jason Merrill Date: Fri, 17 Jun 2011 20:07:13 +0000 (-0400) Subject: semantics.c (finish_non_static_data_member): Preserve dereference in template. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2516ccfe927c61a98bdd561eea90c7229a6a3cbc;p=gcc.git 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 --- 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