[C++ PATCH] Kill IDENTIFIER_LABEL_VALUE
commitdc684a8cd2e5418f77e6290d6c83849def80e938
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Oct 2017 21:37:33 +0000 (25 21:37 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Oct 2017 21:37:33 +0000 (25 21:37 +0000)
treef6836d25afadb688414fefdc89db506d2709781a
parentc6e67a74e092b5c70f33ad9dab99642b25810f9e
[C++ PATCH] Kill IDENTIFIER_LABEL_VALUE

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01854.html
Kill IDENTIFIER_LABEL_VALUE.
* cp-tree.h (lang_identifier): Delete label_value slot.
(IDENTIFIER_LABEL_VALUE, SET_IDENTIFIER_LABEL_VALUE): Delete.
(struct named_label_hasher): Rename to ...
(struct named_label_hash): ... here.  Reimplement.
(struct language_function): Adjust x_named_labels.
* name-lookup.h (struct cp_label_binding): Delete.
(struct cp_binding_level): Delete shadowed_labels slot.
* decl.c (struct named_label_entry): Add name and outer slots.
(pop_label): Rename to ...
(check_label_used): ... here.  Don't pop.
(note_label, sort_labels): Delete.
(pop_labels, pop_local_label): Reimplement.
(poplevel): Pop local labels as any other decl. Remove
shadowed_labels handling.
(named_label_hash::hash, named_label_hash::equal): New.
(make_label_decl): Absorb into ...
(lookup_label_1): ... here.  Add making_local_p arg, reimplement.
(lookup_label, declare_local_label): Adjust.
(check_goto, define_label): Adjust.
* lex.c (make_conv_op_name): Don't clear IDENTIFIER_LABEL_VALUE.
* ptree.c (cxx_print_identifier): Don't print identifier binding.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254087 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/lex.c
gcc/cp/name-lookup.h
gcc/cp/ptree.c