2017-05-18 Nathan Sidwell * cp-tree.h (OVL_USED): Replace with ... (OVL_USING_P): ... this. (ovl_iterator::using_p): Adjust. * name-lookup.c (push_overloaded_decl_1, do_nonmember_using_decl): Adjust. * search.c (lookup_field_r): Adjust. * tree.c (ovl_insert, ovl_scope): Adjust. Index: cp-tree.h =================================================================== --- cp-tree.h (revision 248198) +++ cp-tree.h (working copy) @@ -351,6 +351,7 @@ extern GTY(()) tree cp_global_trees[CPTI CONSTRUCTOR_NO_IMPLICIT_ZERO (in CONSTRUCTOR) TINFO_USED_TEMPLATE_ID (in TEMPLATE_INFO) PACK_EXPANSION_SIZEOF_P (in *_PACK_EXPANSION) + OVL_USING_P (in OVERLOAD) 2: IDENTIFIER_OPNAME_P (in IDENTIFIER_NODE) ICS_THIS_FLAG (in _CONV) DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (in VAR_DECL) @@ -640,14 +641,12 @@ typedef struct ptrmem_cst * ptrmem_cst_t ((TREE_CODE (NODE) == OVERLOAD) ? OVL_FUNCTION (NODE) : (NODE)) #define OVL_NEXT(NODE) \ ((TREE_CODE (NODE) == OVERLOAD) ? TREE_CHAIN (NODE) : NULL_TREE) -/* If set, this was imported in a using declaration. - This is not to confuse with being used somewhere, which - is not important for this node. */ -#define OVL_USED(NODE) TREE_USED (OVERLOAD_CHECK (NODE)) /* If set, this OVERLOAD was created for argument-dependent lookup and can be freed afterward. */ #define OVL_ARG_DEPENDENT(NODE) TREE_LANG_FLAG_0 (OVERLOAD_CHECK (NODE)) +/* If set, this was imported in a using declaration. */ +#define OVL_USING_P(NODE) TREE_LANG_FLAG_1 (OVERLOAD_CHECK (NODE)) /* If set, this overload contains a nested overload. */ #define OVL_NESTED_P(NODE) TREE_LANG_FLAG_3 (OVERLOAD_CHECK (NODE)) /* If set, this overload was constructed during lookup. */ @@ -705,7 +704,7 @@ class ovl_iterator /* Whether this overload was introduced by a using decl. */ bool using_p () const { - return TREE_CODE (ovl) == OVERLOAD && OVL_USED (ovl); + return TREE_CODE (ovl) == OVERLOAD && OVL_USING_P (ovl); } tree remove_node (tree head) { Index: name-lookup.c =================================================================== --- name-lookup.c (revision 248198) +++ name-lookup.c (working copy) @@ -2920,7 +2920,7 @@ push_overloaded_decl_1 (tree decl, int f tree fn = OVL_CURRENT (tmp); tree dup; - if (TREE_CODE (tmp) == OVERLOAD && OVL_USED (tmp) + if (TREE_CODE (tmp) == OVERLOAD && OVL_USING_P (tmp) && !(flags & PUSH_USING) && compparms_for_decl_and_using_decl (fn, decl) && ! decls_match (fn, decl)) @@ -3136,7 +3136,7 @@ do_nonmember_using_decl (tree scope, tre if (new_fn == old_fn) /* The function already exists in the current namespace. */ break; - else if (TREE_CODE (tmp1) == OVERLOAD && OVL_USED (tmp1)) + else if (TREE_CODE (tmp1) == OVERLOAD && OVL_USING_P (tmp1)) continue; /* this is a using decl */ else if (compparms_for_decl_and_using_decl (new_fn, old_fn)) { Index: search.c =================================================================== --- search.c (revision 248166) +++ search.c (working copy) @@ -1106,7 +1106,7 @@ lookup_field_r (tree binfo, void *data) if (!nval) /* Look for a data member or type. */ nval = lookup_field_1 (type, lfi->name, lfi->want_type); - else if (TREE_CODE (nval) == OVERLOAD && OVL_USED (nval)) + else if (TREE_CODE (nval) == OVERLOAD && OVL_USING_P (nval)) { /* If we have both dependent and non-dependent using-declarations, return the dependent one rather than an incomplete list of functions. */ Index: tree.c =================================================================== --- tree.c (revision 248198) +++ tree.c (working copy) @@ -2138,7 +2138,7 @@ ovl_insert (tree fn, tree maybe_ovl, boo /* Find insertion point. */ while (maybe_ovl && TREE_CODE (maybe_ovl) == OVERLOAD - && (weight < OVL_USED (maybe_ovl))) + && (weight < OVL_USING_P (maybe_ovl))) { if (!result) result = maybe_ovl; @@ -2151,7 +2151,7 @@ ovl_insert (tree fn, tree maybe_ovl, boo { trail = ovl_make (fn, maybe_ovl); if (using_p) - OVL_USED (trail) = true; + OVL_USING_P (trail) = true; } if (insert_after) @@ -2290,7 +2290,7 @@ ovl_scope (tree ovl) if (TREE_CODE (ovl) == TEMPLATE_ID_EXPR) ovl = TREE_OPERAND (ovl, 0); /* Skip using-declarations. */ - while (TREE_CODE (ovl) == OVERLOAD && OVL_USED (ovl) && OVL_CHAIN (ovl)) + while (TREE_CODE (ovl) == OVERLOAD && OVL_USING_P (ovl) && OVL_CHAIN (ovl)) ovl = OVL_CHAIN (ovl); return CP_DECL_CONTEXT (OVL_CURRENT (ovl)); }