Kill DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS.
authorNathan Sidwell <nathan@acm.org>
Thu, 25 May 2017 18:52:47 +0000 (18:52 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Thu, 25 May 2017 18:52:47 +0000 (18:52 +0000)
commit44e00a7a1b398940c31b260b27a5f1f93d8017ed
tree46ae0e24e642ec27a2a21ca827419c7f58cb282a
parent63dbcd13e93578e21e0717d4990c1701d6957e3e
Kill DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS.

gcc/cp/
Kill DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS.
* cp-tree.h (lang_decl_ns): Remove ns_users field.
(DECL_NAMESPACE_USERS, DECL_NAMESPACE_ASSOCIATIONS): Delete.
(TREE_INDIRECT_USING): Delete.
* name-lookup.h (is_associated_namespace): Delete.
* name-lookup.c (name_lookup::search_usings
name_lookup::do_queue_usings): Usings are always direct.
(is_associated_namespace): Delete.
(handle_namespace_attrs): Use DECL_NAMESPACE_INLINE_P.
(namespace_ancestor_1, namespace_ancestor): Delete.
(push_using_directive_1, push_using_directive): Delete.
(add_using_namespace_1): Delete.
(add_using_namespace): Reimplement.
(emit_debug_info_using_namespace): New.
(finish_namespace_using_directive, finish_local_using_directive
push_namespace): Adjust.
* tree.c (cp_free_lang_data): Remove DECL_NAMESPACE_USERS
handling.

libcc1/
* libcp1plugin.cc (plugin_make_namespace_inline): Check and set
DECL_NAMESPACE_INLINE_P.

gcc/testsuite/
* g++.dg/lookup/using56.C: New.
* g++.dg/lookup/using57.C: New.
* g++.dg/lookup/using58.C: New.
* g++.dg/lookup/using59.C: New.

From-SVN: r248467
12 files changed:
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/name-lookup.c
gcc/cp/name-lookup.h
gcc/cp/tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lookup/using56.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lookup/using57.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lookup/using58.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lookup/using59.C [new file with mode: 0644]
libcc1/ChangeLog
libcc1/libcp1plugin.cc