Conversion operators have a special name
commit2edde49591cbdb8e412177aad231b1afaa743435
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Aug 2017 11:37:10 +0000 (25 11:37 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Aug 2017 11:37:10 +0000 (25 11:37 +0000)
treef02f660066158abece2226c1baa96e2f8c16f826
parent8dd133da5c969e0b3c9348efc6745bf23ce556c7
Conversion operators have a special name
* cp-tree.h (CPTI_CONV_OP_MARKER, CPTI_CONV_OP_IDENTIFIER): New.
(conv_op_marker, conv_op_identifier): New.
(CLASSTYPE_FIRST_CONVERSION_SLOT): Delete.
* decl.c (initialize_predefined_identifiers): Add
conv_op_identifier.
(cxx_init_decl_processing): Create conv_op_marker.
* decl2.c (check_classfn): Lookup conv-ops by name.
* class.c (add_method): Use conv_op_identifier & conv_op_marker.
(resort_type_method_vec): Don't skip conv-ops.
(finish_struct_methods, warn_hidden): Likewise.
* name-lookup.h (lookup_all_conversions): Delete.
* name-lookup.c (lookup_conversion_operator): Replace with ...
(extract_conversion_operator): ... this.
(lookup_fnfields_slot_nolazy): Find conv-ops by name.
(lookup_all_conversions): Delete.
* pt.c (check_explicit_specialization): Find conv-ops by name.
* search.c (lookup_conversions_r): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251348 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/name-lookup.c
gcc/cp/name-lookup.h
gcc/cp/pt.c
gcc/cp/search.c