aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl2.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2017-08-25 11:37:10 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2017-08-25 11:37:10 +0000
commitbff8b385e997a85cce62031c80bac1b431659fcd (patch)
treef02f660066158abece2226c1baa96e2f8c16f826 /gcc/cp/decl2.c
parent6512c0f187d84dd046380aa53673dc5ae20795e3 (diff)
downloadgcc-bff8b385e997a85cce62031c80bac1b431659fcd.zip
gcc-bff8b385e997a85cce62031c80bac1b431659fcd.tar.gz
gcc-bff8b385e997a85cce62031c80bac1b431659fcd.tar.bz2
Conversion operators have a special name
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. From-SVN: r251348
Diffstat (limited to 'gcc/cp/decl2.c')
-rw-r--r--gcc/cp/decl2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 66d206e..0f828b5 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -664,7 +664,7 @@ check_classfn (tree ctype, tree function, tree template_parms)
else
{
if (DECL_CONV_FN_P (function))
- fns = lookup_all_conversions (ctype);
+ fns = lookup_fnfields_slot (ctype, conv_op_identifier);
error_at (DECL_SOURCE_LOCATION (function),
"no declaration matches %q#D", function);