re PR c++/45329 (When printing a list of candidate functions, explain why each function failed to match.) PR c++/45329 PR c++/48934 * cp-tree.h (fn_type_unification): Add `bool' parameter. * pt.c (enum template_base_result): Define. (unify_success, unify_unknown): Define. (unify_parameter_deduction_failure): Define. (unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define. (unify_parameter_pack_mismatch): Define. (unify_parameter_pack_inconsistent): Define. (unify_ptrmem_cst_mismatch, unify_vla_arg): Define. (unify_expression_unequal, unify_inconsistency): Define. (unify_method_type_error, unify_arity): Likewise. (unify_too_many_parameters, unify_too_few_parameters): Define. (unify_arg_conversion, unify_no_common_base): Define. (unify_illformed_ptrmem_cst_expr): Define. (unify_substitution_failure): Define. (unify_inconsistent_template_template_parameters): Define. (unify_template_deduction_failure): Define. (unify_template_argument_mismatch): Define. (unify_overload_resolution_failure): Define. (comp_template_args_with_info): New function, split out from... (comp_template_args): ...here. Call it. (deduction_tsubst_fntype): Add `complain' parameter'. Pass it to tsubst. (unify): Add `explain_p' parameter. Pass to all relevant calls. Call above status functions when appropriate. (resolve_overloaded_unification, try_one_overload): Likewise. (type_unification, type_unification_real): Likewise. (unify_pack_expansion): Likewise. (get_template_base, try_class_unification): Likewise. (get_bindings, more_specialized_fn): Pass false to unification calls. (get_class_bindings, do_auto_deduction): Likewise. (convert_nontype_argument): Likewise. (fn_type_unification): Likewise. Pass tf_warning_or_error if explain_p. (get_template_base): Add `explain_p' parameter and pass it to try_class_unification. Return an enum template_base_result. * class.c (resolve_address_of_overloaded_function): Pass false to fn_type_unification. * call.c (enum rejection_reason_code): Add new codes. (struct rejection_reason): Add template_unification field. Add template_instantiation field. (template_unification_rejection): Define. (template_unification_error_rejection): Define. (template_instantiation_rejection): Define. (invalid_copy_with_fn_template_rejection): Define. (add_template_candidate): Pass false to unify. Provide more rejection reasons when possible. (print_template_unification_rejection): Define. (print_arity_rejection): Define, split out from... (print_z_candidate): ...here. Add cases for new rejection reasons. Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r176365
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
980310-1.C | Loading commit data... | |
README | Loading commit data... | |
eb10.C | Loading commit data... | |
eb102.C | Loading commit data... | |
eb103.C | Loading commit data... | |
eb104.C | Loading commit data... | |
eb105.C | Loading commit data... | |
eb106.C | Loading commit data... | |
eb107.C | Loading commit data... | |
eb108.C | Loading commit data... | |
eb109.C | Loading commit data... | |
eb11.C | Loading commit data... | |
eb110.C | Loading commit data... | |
eb111.C | Loading commit data... | |
eb112.C | Loading commit data... | |
eb113.C | Loading commit data... | |
eb114.C | Loading commit data... | |
eb115.C | Loading commit data... | |
eb116.C | Loading commit data... | |
eb119.C | Loading commit data... | |
eb12.C | Loading commit data... | |
eb120.C | Loading commit data... | |
eb121.C | Loading commit data... | |
eb122.C | Loading commit data... | |
eb123.C | Loading commit data... | |
eb124.C | Loading commit data... | |
eb125.C | Loading commit data... | |
eb126.C | Loading commit data... | |
eb127.C | Loading commit data... | |
eb128.C | Loading commit data... | |
eb129.C | Loading commit data... | |
eb129a.C | Loading commit data... | |
eb13.C | Loading commit data... | |
eb130.C | Loading commit data... | |
eb131.C | Loading commit data... | |
eb132.C | Loading commit data... | |
eb133a.C | Loading commit data... | |
eb133b.C | Loading commit data... | |
eb133c.C | Loading commit data... | |
eb14.C | Loading commit data... | |
eb15.C | Loading commit data... | |
eb16.C | Loading commit data... | |
eb17.C | Loading commit data... | |
eb18.C | Loading commit data... | |
eb19.C | Loading commit data... | |
eb2.C | Loading commit data... | |
eb20.C | Loading commit data... | |
eb21.C | Loading commit data... | |
eb22.C | Loading commit data... | |
eb23.C | Loading commit data... | |
eb24.C | Loading commit data... | |
eb26.C | Loading commit data... | |
eb27.C | Loading commit data... | |
eb28.C | Loading commit data... | |
eb29.C | Loading commit data... | |
eb3.C | Loading commit data... | |
eb30.C | Loading commit data... | |
eb31.C | Loading commit data... | |
eb32.C | Loading commit data... | |
eb33.C | Loading commit data... | |
eb34.C | Loading commit data... | |
eb35.C | Loading commit data... | |
eb36.C | Loading commit data... | |
eb37.C | Loading commit data... | |
eb38.C | Loading commit data... | |
eb39.C | Loading commit data... | |
eb4.C | Loading commit data... | |
eb41.C | Loading commit data... | |
eb43.C | Loading commit data... | |
eb44.C | Loading commit data... | |
eb45.C | Loading commit data... | |
eb46.C | Loading commit data... | |
eb48.C | Loading commit data... | |
eb49.C | Loading commit data... | |
eb5.C | Loading commit data... | |
eb50.C | Loading commit data... | |
eb51.C | Loading commit data... | |
eb52.C | Loading commit data... | |
eb54.C | Loading commit data... | |
eb55.C | Loading commit data... | |
eb56.C | Loading commit data... | |
eb57.C | Loading commit data... | |
eb58.C | Loading commit data... | |
eb59.C | Loading commit data... | |
eb6.C | Loading commit data... | |
eb60.C | Loading commit data... | |
eb61.C | Loading commit data... | |
eb62.C | Loading commit data... | |
eb63.C | Loading commit data... | |
eb64.C | Loading commit data... | |
eb65.C | Loading commit data... | |
eb66.C | Loading commit data... | |
eb67.C | Loading commit data... | |
eb69.C | Loading commit data... | |
eb7.C | Loading commit data... | |
eb70.C | Loading commit data... | |
eb71.C | Loading commit data... | |
eb73.C | Loading commit data... | |
eb74.C | Loading commit data... | |
eb75.C | Loading commit data... | |
eb76.C | Loading commit data... | |
eb77.C | Loading commit data... | |
eb79.C | Loading commit data... | |
eb8.C | Loading commit data... | |
eb80.C | Loading commit data... | |
eb81.C | Loading commit data... | |
eb82.C | Loading commit data... | |
eb83.C | Loading commit data... | |
eb84.C | Loading commit data... | |
eb86.C | Loading commit data... | |
eb87.C | Loading commit data... | |
eb88.C | Loading commit data... | |
eb9.C | Loading commit data... | |
eb90.C | Loading commit data... | |
eb91.C | Loading commit data... | |
eb92.C | Loading commit data... | |
eb93.C | Loading commit data... | |
eb94.C | Loading commit data... | |
eb95.C | Loading commit data... | |
eb97.C | Loading commit data... | |
eb98.C | Loading commit data... | |
eb99.C | Loading commit data... | |
ebnull-cast.C | Loading commit data... | |
ebnull-oldcast.C | Loading commit data... | |
ebnull.C | Loading commit data... | |
eh990323-1.C | Loading commit data... | |
eh990323-2.C | Loading commit data... | |
eh990323-3.C | Loading commit data... | |
eh990323-4.C | Loading commit data... | |
eh990323-5.C | Loading commit data... | |
ice990323-1.C | Loading commit data... | |
ice990323-2.C | Loading commit data... | |
ice990323-3.C | Loading commit data... | |
ice990323-4.C | Loading commit data... | |
ice990323-5.C | Loading commit data... |