This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r254084 - in /branches/c++-name-lookup: ChangeL...
- From: nathan at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Wed, 25 Oct 2017 20:33:19 -0000
- Subject: r254084 - in /branches/c++-name-lookup: ChangeL...
Author: nathan
Date: Wed Oct 25 20:33:19 2017
New Revision: 254084
URL: https://gcc.gnu.org/viewcvs?rev=254084&root=gcc&view=rev
Log:
Kill IDENTIFIER_LABEL_VALUE.
gcc/cp/
* 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.
(lookup_label): Declare here too.
* 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.
(identify_goto, check_previous_goto, check_goto): Adjust.
(check_omp_return, define_label_1, define_label): Adjust.
* lex.c (make_conv_op_name): Don't clear IDENTIFIER_LABEL_VALUE.
* name-lookup.h (struct cp_label_binding): Delete.
(struct cp_binding_level): Delete shadowed_labels slot.
* ptree.c (cxx_print_identifier): Don't print identifier binding.
Modified:
branches/c++-name-lookup/ChangeLog.name-lookup
branches/c++-name-lookup/gcc/cp/cp-tree.h
branches/c++-name-lookup/gcc/cp/decl.c
branches/c++-name-lookup/gcc/cp/lex.c
branches/c++-name-lookup/gcc/cp/name-lookup.h
branches/c++-name-lookup/gcc/cp/ptree.c