-2010-04-27 Jason Merrill <jason@redhat.com>
+2010-04-24 Jason Merrill <jason@redhat.com>
+
+ * tree.c (get_fns): Split out from get_first_fn.
+ * cp-tree.h: Declare it.
+ * search.c (shared_member_p): Use it.
+ * semantics.c (finish_qualified_id_expr): Simplify.
+ (finish_id_expression): Simplify.
* semantics.c (finish_non_static_data_member): Call maybe_dummy_object
whenever object is NULL_TREE. Don't do 'this' capture here.
}
else if (BASELINK_P (expr) && !processing_template_decl)
{
- tree fns;
tree ob;
/* See if any of the functions are non-static members. */
- fns = BASELINK_FUNCTIONS (expr);
- if (TREE_CODE (fns) == TEMPLATE_ID_EXPR)
- fns = TREE_OPERAND (fns, 0);
/* If so, the expression may be relative to 'this'. */
- if (!shared_member_p (fns)
+ if (!shared_member_p (expr)
&& (ob = maybe_dummy_object (qualifying_class, NULL),
!is_dummy_object (ob)))
expr = (build_class_member_access_expr
{
tree first_fn;
- first_fn = decl;
- if (TREE_CODE (first_fn) == TEMPLATE_ID_EXPR)
- first_fn = TREE_OPERAND (first_fn, 0);
- first_fn = get_first_fn (first_fn);
+ first_fn = get_first_fn (decl);
if (TREE_CODE (first_fn) == TEMPLATE_DECL)
first_fn = DECL_TEMPLATE_RESULT (first_fn);