aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2017-05-25 20:55:07 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2017-05-25 20:55:07 +0000
commit87c976aeadc431c802452673b4ab95b7827af6f0 (patch)
tree7d7705b33c42c49589518b786eaca278d9ba4f20 /gcc
parentde3fb1a6464423bac12fe67b893dc62081902de2 (diff)
downloadgcc-87c976aeadc431c802452673b4ab95b7827af6f0.zip
gcc-87c976aeadc431c802452673b4ab95b7827af6f0.tar.gz
gcc-87c976aeadc431c802452673b4ab95b7827af6f0.tar.bz2
Kill OVL_CURRENT, OVL_NEXT.
* cp-tree.h (OVL_CURRENT, OVL_NEXT): Delete. * name-lookup.c (set_decl_namespace): Use ovl_iterator. (consider_binding_level): Use OVL_FIRST. (cp_emit_debug_info_for_using): Use lkp_iterator. * pt.c (check_explicit_specialization): Use ovl_iterator. From-SVN: r248469
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/cp-tree.h6
-rw-r--r--gcc/cp/name-lookup.c33
-rw-r--r--gcc/cp/pt.c4
4 files changed, 26 insertions, 24 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index df36ce5..279bcdb 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,12 @@
2017-05-25 Nathan Sidwell <nathan@acm.org>
+ Kill OVL_CURRENT, OVL_NEXT.
+ * cp-tree.h (OVL_CURRENT, OVL_NEXT): Delete.
+ * name-lookup.c (set_decl_namespace): Use ovl_iterator.
+ (consider_binding_level): Use OVL_FIRST.
+ (cp_emit_debug_info_for_using): Use lkp_iterator.
+ * pt.c (check_explicit_specialization): Use ovl_iterator.
+
Kill DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS.
* cp-tree.h (lang_decl_ns): Remove ns_users field.
(DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS): Delete.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 11f8d01..514cb89 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -659,12 +659,6 @@ typedef struct ptrmem_cst * ptrmem_cst_t;
(((struct tree_overload*)OVERLOAD_CHECK (NODE))->function)
#define OVL_CHAIN(NODE) TREE_CHAIN (NODE)
-/* Polymorphic access to FUNCTION and CHAIN. */
-#define OVL_CURRENT(NODE) \
- ((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. */
#define OVL_USING_P(NODE) TREE_LANG_FLAG_1 (OVERLOAD_CHECK (NODE))
/* If set, this overload is a hidden decl. */
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 0e3a16c..5d5f98a 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -4275,13 +4275,13 @@ set_decl_namespace (tree decl, tree scope, bool friendp)
friends in any namespace. */
if (friendp && DECL_USE_TEMPLATE (decl))
return;
- if (is_overloaded_fn (old))
+ if (OVL_P (old))
{
tree found = NULL_TREE;
- tree elt = old;
- for (; elt; elt = OVL_NEXT (elt))
+
+ for (ovl_iterator iter (old); iter; ++iter)
{
- tree ofn = OVL_CURRENT (elt);
+ tree ofn = *iter;
/* Adjust DECL_CONTEXT first so decls_match will return true
if DECL will match a declaration in an inline namespace. */
DECL_CONTEXT (decl) = DECL_CONTEXT (ofn);
@@ -4932,10 +4932,7 @@ consider_binding_level (tree name, best_match <tree, const char *> &bm,
/* OVERLOADs or decls from using declaration are wrapped into
TREE_LIST. */
if (TREE_CODE (d) == TREE_LIST)
- {
- d = TREE_VALUE (d);
- d = OVL_CURRENT (d);
- }
+ d = OVL_FIRST (TREE_VALUE (d));
/* Don't use bindings from implicitly declared functions,
as they were likely misspellings themselves. */
@@ -6290,14 +6287,18 @@ cp_emit_debug_info_for_using (tree t, tree context)
t = BASELINK_FUNCTIONS (t);
/* FIXME: Handle TEMPLATE_DECLs. */
- for (t = OVL_CURRENT (t); t; t = OVL_NEXT (t))
- if (TREE_CODE (t) != TEMPLATE_DECL)
- {
- if (building_stmt_list_p ())
- add_stmt (build_stmt (input_location, USING_STMT, t));
- else
- (*debug_hooks->imported_module_or_decl) (t, NULL_TREE, context, false);
- }
+ for (lkp_iterator iter (t); iter; ++iter)
+ {
+ tree fn = *iter;
+ if (TREE_CODE (fn) != TEMPLATE_DECL)
+ {
+ if (building_stmt_list_p ())
+ add_stmt (build_stmt (input_location, USING_STMT, fn));
+ else
+ debug_hooks->imported_module_or_decl (fn,
+ NULL_TREE, context, false);
+ }
+ }
}
#include "gt-cp-name-lookup.h"
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 54de34b..984961b 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -2931,8 +2931,8 @@ check_explicit_specialization (tree declarator,
/* Glue all these conversion functions together
with those we already have. */
- for (; ovl; ovl = OVL_NEXT (ovl))
- fns = lookup_add (OVL_CURRENT (ovl), fns);
+ for (ovl_iterator iter (ovl); iter; ++iter)
+ fns = lookup_add (*iter, fns);
}
}