OSDN Git Service

gcc/cp/
authorfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 8 Dec 2010 21:37:51 +0000 (21:37 +0000)
committerfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 8 Dec 2010 21:37:51 +0000 (21:37 +0000)
PR c++/45329
* call.c (struct conversion): Document bad_p field.
(enum rejection_reason_code): Define.
(struct conversion_info): Define.
(struct rejection_reason): Define.
(struct z_candidate): Add `reason' field.
(add_candidate): Add `reason' parameter.  Store it in CAND.
(alloc_rejection, arity_rejection, arg_conversion_rejection):
New functions.
(bad_arg_conversion_rejection): New function.
(convert_class_to_reference): Add comment.
(remaining_arguments): New function.
(add_function_candidate): Record rejection reason and pass it to
add_candidate.
(add_conv_candidate, build_builtin_candidate): Likewise.
(add_template_candidate_real): Likewise.
(print_conversion_rejection): New function.
(print_z_candidate): Print CAND->REASON if it exists.  Adjust
diagnostic strings.
(print_z_candidates): Add location_t argument.  Adjust calling
sequence for print_z_candidate. Print header line directly.
(build_user_type_conversion_1): Add reason for rejection to
CAND.  Adjust call to print_z_candidates.
(print_error_for_call_failure): New function.
(build_new_function_call): Call it.  Adjust call to
print_z_candidates.
(build_operator_new_call): Likewise.
(build_op_call): Likewise.
(build_conditional_expr): Likewise.
(build_new_op): Likewise.
(build_new_method_call): Likewise.

gcc/testsuite/
PR c++/45329
* testsuite/g++.dg/conversion/ambig1.C: Adjust.
* testsuite/g++.dg/conversion/op1.C: Adjust.
* testsuite/g++.dg/conversion/simd1.C: Adjust.
* testsuite/g++.dg/cpp0x/defaulted14.C: Adjust.
* testsuite/g++.dg/cpp0x/defaulted18.C: Adjust.
* testsuite/g++.dg/cpp0x/defaulted20.C: Adjust.
* testsuite/g++.dg/cpp0x/explicit3.C: Adjust.
* testsuite/g++.dg/cpp0x/explicit4.C: Adjust.
* testsuite/g++.dg/cpp0x/implicit4.C: Adjust.
* testsuite/g++.dg/cpp0x/nullptr15.C: Adjust.
* testsuite/g++.dg/cpp0x/nullptr19.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31431-2.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31431.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31434.C: Adjust.
* testsuite/g++.dg/cpp0x/pr31437.C: Adjust.
* testsuite/g++.dg/cpp0x/rv2n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv3n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv4n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv5n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv6n.C: Adjust.
* testsuite/g++.dg/cpp0x/rv7n.C: Adjust.
* testsuite/g++.dg/cpp0x/temp_default2.C: Adjust.
* testsuite/g++.dg/cpp0x/trailing4.C: Adjust.
* testsuite/g++.dg/cpp0x/variadic-ex3.C: Adjust.
* testsuite/g++.dg/cpp0x/variadic-ex4.C: Adjust.
* testsuite/g++.dg/cpp0x/variadic35.C: Adjust.
* testsuite/g++.dg/cpp0x/vt-35147.C: Adjust.
* testsuite/g++.dg/cpp0x/vt-37737-2.C: Adjust.
* testsuite/g++.dg/expr/cond9.C: Adjust.
* testsuite/g++.dg/expr/pmf-1.C: Adjust.
* testsuite/g++.dg/ext/label5.C: Adjust.
* testsuite/g++.dg/ext/visibility/anon8.C: Adjust.
* testsuite/g++.dg/ext/vla2.C: Adjust.
* testsuite/g++.dg/gomp/pr26690-1.C: Adjust.
* testsuite/g++.dg/gomp/pr26690-2.C: Adjust.
* testsuite/g++.dg/init/synth2.C: Adjust.
* testsuite/g++.dg/lookup/conv-1.C: Adjust.
* testsuite/g++.dg/lookup/new1.C: Adjust.
* testsuite/g++.dg/lookup/using9.C: Adjust.
* testsuite/g++.dg/other/error13.C: Adjust.
* testsuite/g++.dg/other/error20.C: Adjust.
* testsuite/g++.dg/other/error31.C: Adjust.
* testsuite/g++.dg/other/pr28114.C: Adjust.
* testsuite/g++.dg/other/ptrmem10.C: Adjust.
* testsuite/g++.dg/other/ptrmem11.C: Adjust.
* testsuite/g++.dg/overload/ambig1.C: Adjust.
* testsuite/g++.dg/overload/arg3.C: Adjust.
* testsuite/g++.dg/overload/builtin1.C: Adjust.
* testsuite/g++.dg/overload/copy1.C: Adjust.
* testsuite/g++.dg/overload/new1.C: Adjust.
* testsuite/g++.dg/overload/template4.C: Adjust.
* testsuite/g++.dg/overload/unknown1.C: Adjust.
* testsuite/g++.dg/overload/using2.C: Adjust.
* testsuite/g++.dg/parse/crash5.C: Adjust.
* testsuite/g++.dg/parse/error19.C: Adjust.
* testsuite/g++.dg/parse/error28.C: Adjust.
* testsuite/g++.dg/parse/template7.C: Adjust.
* testsuite/g++.dg/parse/typename7.C: Adjust.
* testsuite/g++.dg/rtti/typeid6.C: Adjust.
* testsuite/g++.dg/tc1/dr152.C: Adjust.
* testsuite/g++.dg/template/conv11.C: Adjust.
* testsuite/g++.dg/template/copy1.C: Adjust.
* testsuite/g++.dg/template/crash37.C: Adjust.
* testsuite/g++.dg/template/deduce3.C: Adjust.
* testsuite/g++.dg/template/dependent-expr5.C: Adjust.
* testsuite/g++.dg/template/error38.C: Adjust.
* testsuite/g++.dg/template/error40.C: Adjust.
* testsuite/g++.dg/template/friend.C: Adjust.
* testsuite/g++.dg/template/incomplete2.C: Adjust.
* testsuite/g++.dg/template/instantiate5.C: Adjust.
* testsuite/g++.dg/template/local4.C: Adjust.
* testsuite/g++.dg/template/local6.C: Adjust.
* testsuite/g++.dg/template/new3.C: Adjust.
* testsuite/g++.dg/template/operator9.C: Adjust.
* testsuite/g++.dg/template/overload6.C: Adjust.
* testsuite/g++.dg/template/ptrmem2.C: Adjust.
* testsuite/g++.dg/template/ptrmem20.C: Adjust.
* testsuite/g++.dg/template/ptrmem4.C: Adjust.
* testsuite/g++.dg/template/ptrmem8.C: Adjust.
* testsuite/g++.dg/template/qualttp5.C: Adjust.
* testsuite/g++.dg/template/sfinae2.C: Adjust.
* testsuite/g++.dg/template/spec22.C: Adjust.
* testsuite/g++.dg/template/spec23.C: Adjust.
* testsuite/g++.dg/template/ttp25.C: Adjust.
* testsuite/g++.dg/template/typedef4.C: Adjust.
* testsuite/g++.dg/template/unify10.C: Adjust.
* testsuite/g++.dg/template/unify11.C: Adjust.
* testsuite/g++.dg/template/unify6.C: Adjust.
* testsuite/g++.dg/template/unify7.C: Adjust.
* testsuite/g++.dg/template/unify9.C: Adjust.
* testsuite/g++.dg/template/varmod1.C: Adjust.
* testsuite/g++.old-deja/g++.benjamin/15799.C: Adjust.
* testsuite/g++.old-deja/g++.benjamin/15800-1.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/ambiguity1.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/crash29.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/crash48.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/crash56.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/cvt3.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/overload1.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/overload4.C: Adjust.
* testsuite/g++.old-deja/g++.brendan/overload9.C: Adjust.
* testsuite/g++.old-deja/g++.bugs/900127_01.C: Adjust.
* testsuite/g++.old-deja/g++.bugs/900205_04.C: Adjust.
* testsuite/g++.old-deja/g++.bugs/900330_02.C: Adjust.
* testsuite/g++.old-deja/g++.bugs/900404_03.C: Adjust.
* testsuite/g++.old-deja/g++.bugs/900514_03.C: Adjust.
* testsuite/g++.old-deja/g++.eh/ctor1.C: Adjust.
* testsuite/g++.old-deja/g++.jason/conversion11.C: Adjust.
* testsuite/g++.old-deja/g++.jason/crash3.C: Adjust.
* testsuite/g++.old-deja/g++.jason/overload16.C: Adjust.
* testsuite/g++.old-deja/g++.jason/overload28.C: Adjust.
* testsuite/g++.old-deja/g++.jason/scoping10.C: Adjust.
* testsuite/g++.old-deja/g++.jason/template30.C: Adjust.
* testsuite/g++.old-deja/g++.jason/temporary2.C: Adjust.
* testsuite/g++.old-deja/g++.law/arg1.C: Adjust.
* testsuite/g++.old-deja/g++.law/arg11.C: Adjust.
* testsuite/g++.old-deja/g++.law/arm9.C: Adjust.
* testsuite/g++.old-deja/g++.law/ctors11.C: Adjust.
* testsuite/g++.old-deja/g++.law/ctors17.C: Adjust.
* testsuite/g++.old-deja/g++.law/ctors5.C: Adjust.
* testsuite/g++.old-deja/g++.law/ctors9.C: Adjust.
* testsuite/g++.old-deja/g++.law/enum4.C: Adjust.
* testsuite/g++.old-deja/g++.law/missed-error2.C: Adjust.
* testsuite/g++.old-deja/g++.law/operators32.C: Adjust.
* testsuite/g++.old-deja/g++.law/operators9.C: Adjust.
* testsuite/g++.old-deja/g++.mike/net2.C: Adjust.
* testsuite/g++.old-deja/g++.mike/net22.C: Adjust.
* testsuite/g++.old-deja/g++.mike/p11110.C: Adjust.
* testsuite/g++.old-deja/g++.mike/p1989.C: Adjust.
* testsuite/g++.old-deja/g++.mike/p2431.C: Adjust.
* testsuite/g++.old-deja/g++.mike/p438.C: Adjust.
* testsuite/g++.old-deja/g++.mike/p807a.C: Adjust.
* testsuite/g++.old-deja/g++.mike/p9068.C: Adjust.
* testsuite/g++.old-deja/g++.niklas/t120.C: Adjust.
* testsuite/g++.old-deja/g++.niklas/t121.C: Adjust.
* testsuite/g++.old-deja/g++.niklas/t128.C: Adjust.
* testsuite/g++.old-deja/g++.ns/overload2.C: Adjust.
* testsuite/g++.old-deja/g++.ns/using12.C: Adjust.
* testsuite/g++.old-deja/g++.other/crash24.C: Adjust.
* testsuite/g++.old-deja/g++.other/expr1.C: Adjust.
* testsuite/g++.old-deja/g++.other/overload11.C: Adjust.
* testsuite/g++.old-deja/g++.other/pmf3.C: Adjust.
* testsuite/g++.old-deja/g++.other/volatile1.C: Adjust.
* testsuite/g++.old-deja/g++.pt/auto_ptr.C: Adjust.
* testsuite/g++.old-deja/g++.pt/crash28.C: Adjust.
* testsuite/g++.old-deja/g++.pt/crash60.C: Adjust.
* testsuite/g++.old-deja/g++.pt/explicit38.C: Adjust.
* testsuite/g++.old-deja/g++.pt/explicit39.C: Adjust.
* testsuite/g++.old-deja/g++.pt/explicit41.C: Adjust.
* testsuite/g++.old-deja/g++.pt/explicit67.C: Adjust.
* testsuite/g++.old-deja/g++.pt/explicit77.C: Adjust.
* testsuite/g++.old-deja/g++.pt/expr2.C: Adjust.
* testsuite/g++.old-deja/g++.pt/ptrmem10.C: Adjust.
* testsuite/g++.old-deja/g++.pt/ptrmem6.C: Adjust.
* testsuite/g++.old-deja/g++.pt/spec35.C: Adjust.
* testsuite/g++.old-deja/g++.pt/spec5.C: Adjust.
* testsuite/g++.old-deja/g++.pt/spec6.C: Adjust.
* testsuite/g++.old-deja/g++.pt/t05.C: Adjust.
* testsuite/g++.old-deja/g++.pt/t24.C: Adjust.
* testsuite/g++.old-deja/g++.pt/unify4.C: Adjust.
* testsuite/g++.old-deja/g++.pt/unify6.C: Adjust.
* testsuite/g++.old-deja/g++.pt/unify8.C: Adjust.
* testsuite/g++.old-deja/g++.robertl/eb109.C: Adjust.
* testsuite/g++.old-deja/g++.robertl/eb119.C: Adjust.
* testsuite/g++.old-deja/g++.robertl/eb131.C: Adjust.
* testsuite/g++.old-deja/g++.robertl/eb22.C: Adjust.
* testsuite/g++.old-deja/g++.robertl/eb69.C: Adjust.
* testsuite/g++.old-deja/g++.robertl/eb98.C: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167607 138bc75d-0d04-0410-961f-82ee72b054a4

171 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/conversion/ambig1.C
gcc/testsuite/g++.dg/conversion/op1.C
gcc/testsuite/g++.dg/conversion/simd1.C
gcc/testsuite/g++.dg/cpp0x/defaulted14.C
gcc/testsuite/g++.dg/cpp0x/defaulted18.C
gcc/testsuite/g++.dg/cpp0x/defaulted20.C
gcc/testsuite/g++.dg/cpp0x/explicit3.C
gcc/testsuite/g++.dg/cpp0x/explicit4.C
gcc/testsuite/g++.dg/cpp0x/implicit4.C
gcc/testsuite/g++.dg/cpp0x/nullptr15.C
gcc/testsuite/g++.dg/cpp0x/nullptr19.C
gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
gcc/testsuite/g++.dg/cpp0x/pr31431.C
gcc/testsuite/g++.dg/cpp0x/pr31434.C
gcc/testsuite/g++.dg/cpp0x/pr31437.C
gcc/testsuite/g++.dg/cpp0x/rv2n.C
gcc/testsuite/g++.dg/cpp0x/rv3n.C
gcc/testsuite/g++.dg/cpp0x/rv4n.C
gcc/testsuite/g++.dg/cpp0x/rv5n.C
gcc/testsuite/g++.dg/cpp0x/rv6n.C
gcc/testsuite/g++.dg/cpp0x/rv7n.C
gcc/testsuite/g++.dg/cpp0x/temp_default2.C
gcc/testsuite/g++.dg/cpp0x/trailing4.C
gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C
gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C
gcc/testsuite/g++.dg/cpp0x/variadic35.C
gcc/testsuite/g++.dg/cpp0x/vt-35147.C
gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C
gcc/testsuite/g++.dg/expr/cond9.C
gcc/testsuite/g++.dg/expr/pmf-1.C
gcc/testsuite/g++.dg/ext/label5.C
gcc/testsuite/g++.dg/ext/visibility/anon8.C
gcc/testsuite/g++.dg/ext/vla2.C
gcc/testsuite/g++.dg/gomp/pr26690-1.C
gcc/testsuite/g++.dg/gomp/pr26690-2.C
gcc/testsuite/g++.dg/init/synth2.C
gcc/testsuite/g++.dg/lookup/conv-1.C
gcc/testsuite/g++.dg/lookup/new1.C
gcc/testsuite/g++.dg/lookup/using9.C
gcc/testsuite/g++.dg/other/error13.C
gcc/testsuite/g++.dg/other/error20.C
gcc/testsuite/g++.dg/other/error31.C
gcc/testsuite/g++.dg/other/pr28114.C
gcc/testsuite/g++.dg/other/ptrmem10.C
gcc/testsuite/g++.dg/other/ptrmem11.C
gcc/testsuite/g++.dg/overload/ambig1.C
gcc/testsuite/g++.dg/overload/arg3.C
gcc/testsuite/g++.dg/overload/builtin1.C
gcc/testsuite/g++.dg/overload/copy1.C
gcc/testsuite/g++.dg/overload/new1.C
gcc/testsuite/g++.dg/overload/template4.C
gcc/testsuite/g++.dg/overload/unknown1.C
gcc/testsuite/g++.dg/overload/using2.C
gcc/testsuite/g++.dg/parse/crash5.C
gcc/testsuite/g++.dg/parse/error19.C
gcc/testsuite/g++.dg/parse/error28.C
gcc/testsuite/g++.dg/parse/template7.C
gcc/testsuite/g++.dg/parse/typename7.C
gcc/testsuite/g++.dg/rtti/typeid6.C
gcc/testsuite/g++.dg/tc1/dr152.C
gcc/testsuite/g++.dg/template/conv11.C
gcc/testsuite/g++.dg/template/copy1.C
gcc/testsuite/g++.dg/template/crash37.C
gcc/testsuite/g++.dg/template/deduce3.C
gcc/testsuite/g++.dg/template/dependent-expr5.C
gcc/testsuite/g++.dg/template/error38.C
gcc/testsuite/g++.dg/template/error40.C
gcc/testsuite/g++.dg/template/friend.C
gcc/testsuite/g++.dg/template/incomplete2.C
gcc/testsuite/g++.dg/template/instantiate5.C
gcc/testsuite/g++.dg/template/local4.C
gcc/testsuite/g++.dg/template/local6.C
gcc/testsuite/g++.dg/template/new3.C
gcc/testsuite/g++.dg/template/operator9.C
gcc/testsuite/g++.dg/template/overload6.C
gcc/testsuite/g++.dg/template/ptrmem2.C
gcc/testsuite/g++.dg/template/ptrmem20.C
gcc/testsuite/g++.dg/template/ptrmem4.C
gcc/testsuite/g++.dg/template/ptrmem8.C
gcc/testsuite/g++.dg/template/qualttp5.C
gcc/testsuite/g++.dg/template/sfinae2.C
gcc/testsuite/g++.dg/template/spec22.C
gcc/testsuite/g++.dg/template/spec23.C
gcc/testsuite/g++.dg/template/ttp25.C
gcc/testsuite/g++.dg/template/typedef4.C
gcc/testsuite/g++.dg/template/unify10.C
gcc/testsuite/g++.dg/template/unify11.C
gcc/testsuite/g++.dg/template/unify6.C
gcc/testsuite/g++.dg/template/unify7.C
gcc/testsuite/g++.dg/template/unify9.C
gcc/testsuite/g++.dg/template/varmod1.C
gcc/testsuite/g++.old-deja/g++.benjamin/15799.C
gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C
gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C
gcc/testsuite/g++.old-deja/g++.brendan/crash29.C
gcc/testsuite/g++.old-deja/g++.brendan/crash48.C
gcc/testsuite/g++.old-deja/g++.brendan/crash56.C
gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C
gcc/testsuite/g++.old-deja/g++.brendan/overload1.C
gcc/testsuite/g++.old-deja/g++.brendan/overload4.C
gcc/testsuite/g++.old-deja/g++.brendan/overload9.C
gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C
gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C
gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C
gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C
gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C
gcc/testsuite/g++.old-deja/g++.eh/ctor1.C
gcc/testsuite/g++.old-deja/g++.jason/conversion11.C
gcc/testsuite/g++.old-deja/g++.jason/crash3.C
gcc/testsuite/g++.old-deja/g++.jason/overload16.C
gcc/testsuite/g++.old-deja/g++.jason/overload28.C
gcc/testsuite/g++.old-deja/g++.jason/scoping10.C
gcc/testsuite/g++.old-deja/g++.jason/template30.C
gcc/testsuite/g++.old-deja/g++.jason/temporary2.C
gcc/testsuite/g++.old-deja/g++.law/arg1.C
gcc/testsuite/g++.old-deja/g++.law/arg11.C
gcc/testsuite/g++.old-deja/g++.law/arm9.C
gcc/testsuite/g++.old-deja/g++.law/ctors11.C
gcc/testsuite/g++.old-deja/g++.law/ctors17.C
gcc/testsuite/g++.old-deja/g++.law/ctors5.C
gcc/testsuite/g++.old-deja/g++.law/ctors9.C
gcc/testsuite/g++.old-deja/g++.law/enum4.C
gcc/testsuite/g++.old-deja/g++.law/missed-error2.C
gcc/testsuite/g++.old-deja/g++.law/operators32.C
gcc/testsuite/g++.old-deja/g++.law/operators9.C
gcc/testsuite/g++.old-deja/g++.mike/net2.C
gcc/testsuite/g++.old-deja/g++.mike/net22.C
gcc/testsuite/g++.old-deja/g++.mike/p11110.C
gcc/testsuite/g++.old-deja/g++.mike/p1989.C
gcc/testsuite/g++.old-deja/g++.mike/p2431.C
gcc/testsuite/g++.old-deja/g++.mike/p438.C
gcc/testsuite/g++.old-deja/g++.mike/p807a.C
gcc/testsuite/g++.old-deja/g++.mike/p9068.C
gcc/testsuite/g++.old-deja/g++.niklas/t120.C
gcc/testsuite/g++.old-deja/g++.niklas/t121.C
gcc/testsuite/g++.old-deja/g++.niklas/t128.C
gcc/testsuite/g++.old-deja/g++.ns/overload2.C
gcc/testsuite/g++.old-deja/g++.ns/using12.C
gcc/testsuite/g++.old-deja/g++.other/crash24.C
gcc/testsuite/g++.old-deja/g++.other/expr1.C
gcc/testsuite/g++.old-deja/g++.other/overload11.C
gcc/testsuite/g++.old-deja/g++.other/pmf3.C
gcc/testsuite/g++.old-deja/g++.other/volatile1.C
gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C
gcc/testsuite/g++.old-deja/g++.pt/crash28.C
gcc/testsuite/g++.old-deja/g++.pt/crash60.C
gcc/testsuite/g++.old-deja/g++.pt/explicit38.C
gcc/testsuite/g++.old-deja/g++.pt/explicit39.C
gcc/testsuite/g++.old-deja/g++.pt/explicit41.C
gcc/testsuite/g++.old-deja/g++.pt/explicit67.C
gcc/testsuite/g++.old-deja/g++.pt/explicit77.C
gcc/testsuite/g++.old-deja/g++.pt/expr2.C
gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C
gcc/testsuite/g++.old-deja/g++.pt/ptrmem6.C
gcc/testsuite/g++.old-deja/g++.pt/spec35.C
gcc/testsuite/g++.old-deja/g++.pt/spec5.C
gcc/testsuite/g++.old-deja/g++.pt/spec6.C
gcc/testsuite/g++.old-deja/g++.pt/t05.C
gcc/testsuite/g++.old-deja/g++.pt/t24.C
gcc/testsuite/g++.old-deja/g++.pt/unify4.C
gcc/testsuite/g++.old-deja/g++.pt/unify6.C
gcc/testsuite/g++.old-deja/g++.pt/unify8.C
gcc/testsuite/g++.old-deja/g++.robertl/eb109.C
gcc/testsuite/g++.old-deja/g++.robertl/eb119.C
gcc/testsuite/g++.old-deja/g++.robertl/eb131.C
gcc/testsuite/g++.old-deja/g++.robertl/eb22.C
gcc/testsuite/g++.old-deja/g++.robertl/eb69.C
gcc/testsuite/g++.old-deja/g++.robertl/eb98.C

index e8329c1..f5bddff 100644 (file)
@@ -1,3 +1,37 @@
+2010-12-08  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c++/45329
+       * call.c (struct conversion): Document bad_p field.
+       (enum rejection_reason_code): Define.
+       (struct conversion_info): Define.
+       (struct rejection_reason): Define.
+       (struct z_candidate): Add `reason' field.
+       (add_candidate): Add `reason' parameter.  Store it in CAND.
+       (alloc_rejection, arity_rejection, arg_conversion_rejection):
+       New functions.
+       (bad_arg_conversion_rejection): New function.
+       (convert_class_to_reference): Add comment.
+       (remaining_arguments): New function.
+       (add_function_candidate): Record rejection reason and pass it to
+       add_candidate.
+       (add_conv_candidate, build_builtin_candidate): Likewise.
+       (add_template_candidate_real): Likewise.
+       (print_conversion_rejection): New function.
+       (print_z_candidate): Print CAND->REASON if it exists.  Adjust
+       diagnostic strings.
+       (print_z_candidates): Add location_t argument.  Adjust calling
+       sequence for print_z_candidate. Print header line directly.
+       (build_user_type_conversion_1): Add reason for rejection to
+       CAND.  Adjust call to print_z_candidates.
+       (print_error_for_call_failure): New function.
+       (build_new_function_call): Call it.  Adjust call to
+       print_z_candidates.
+       (build_operator_new_call): Likewise.
+       (build_op_call): Likewise.
+       (build_conditional_expr): Likewise.
+       (build_new_op): Likewise.
+       (build_new_method_call): Likewise.
+
 2010-12-08  Jason Merrill  <jason@redhat.com>
 
        PR c++/45822
index 1e0b328..9c9f648 100644 (file)
@@ -85,6 +85,9 @@ struct conversion {
   BOOL_BITFIELD user_conv_p : 1;
   BOOL_BITFIELD ellipsis_p : 1;
   BOOL_BITFIELD this_p : 1;
+  /* True if this conversion would be permitted with a bending of
+     language standards, e.g. disregarding pointer qualifiers or
+     converting integers to pointers.  */
   BOOL_BITFIELD bad_p : 1;
   /* If KIND is ck_ref_bind ck_base_conv, true to indicate that a
      temporary should be created to hold the result of the
@@ -130,6 +133,7 @@ struct conversion {
 
 static struct obstack conversion_obstack;
 static bool conversion_obstack_initialized;
+struct rejection_reason;
 
 static struct z_candidate * tourney (struct z_candidate *);
 static int equal_functions (tree, tree);
@@ -152,7 +156,7 @@ static void op_error (enum tree_code, enum tree_code, tree, tree,
 static VEC(tree,gc) *resolve_args (VEC(tree,gc) *);
 static struct z_candidate *build_user_type_conversion_1 (tree, tree, int);
 static void print_z_candidate (const char *, struct z_candidate *);
-static void print_z_candidates (struct z_candidate *);
+static void print_z_candidates (location_t, struct z_candidate *);
 static tree build_this (tree);
 static struct z_candidate *splice_viable (struct z_candidate *, bool, bool *);
 static bool any_strictly_viable (struct z_candidate *);
@@ -191,7 +195,7 @@ static conversion *maybe_handle_ref_bind (conversion **);
 static void maybe_handle_implicit_object (conversion **);
 static struct z_candidate *add_candidate
        (struct z_candidate **, tree, tree, const VEC(tree,gc) *, size_t,
-        conversion **, tree, tree, int);
+        conversion **, tree, tree, int, struct rejection_reason *);
 static tree source_type (conversion *);
 static void add_warning (struct z_candidate *, struct z_candidate *);
 static bool reference_compatible_p (tree, tree);
@@ -417,6 +421,43 @@ struct candidate_warning {
   candidate_warning *next;
 };
 
+/* Information for providing diagnostics about why overloading failed.  */
+
+enum rejection_reason_code {
+  rr_none,
+  rr_arity,
+  rr_arg_conversion,
+  rr_bad_arg_conversion
+};
+
+struct conversion_info {
+  /* The index of the argument, 0-based.  */
+  int n_arg;
+  /* The type of the actual argument.  */
+  tree from_type;
+  /* The type of the formal argument.  */
+  tree to_type;
+};
+  
+struct rejection_reason {
+  enum rejection_reason_code code;
+  union {
+    /* Information about an arity mismatch.  */
+    struct {
+      /* The expected number of arguments.  */
+      int expected;
+      /* The actual number of arguments in the call.  */
+      int actual;
+      /* Whether the call was a varargs call.  */
+      bool call_varargs_p;
+    } arity;
+    /* Information about an argument conversion mismatch.  */
+    struct conversion_info conversion;
+    /* Same, but for bad argument conversions.  */
+    struct conversion_info bad_conversion;
+  } u;
+};
+
 struct z_candidate {
   /* The FUNCTION_DECL that will be called if this candidate is
      selected by overload resolution.  */
@@ -438,6 +479,7 @@ struct z_candidate {
      type.  */
   conversion *second_conv;
   int viable;
+  struct rejection_reason *reason;
   /* If FN is a member function, the binfo indicating the path used to
      qualify the name of FN at the call site.  This path is used to
      determine whether or not FN is accessible if it is selected by
@@ -519,6 +561,49 @@ conversion_obstack_alloc (size_t n)
   return p;
 }
 
+/* Allocate rejection reasons.  */
+
+static struct rejection_reason *
+alloc_rejection (enum rejection_reason_code code)
+{
+  struct rejection_reason *p;
+  p = (struct rejection_reason *) conversion_obstack_alloc (sizeof *p);
+  p->code = code;
+  return p;
+}
+
+static struct rejection_reason *
+arity_rejection (tree first_arg, int expected, int actual)
+{
+  struct rejection_reason *r = alloc_rejection (rr_arity);
+  int adjust = first_arg != NULL_TREE;
+  r->u.arity.expected = expected - adjust;
+  r->u.arity.actual = actual - adjust;
+  return r;
+}
+
+static struct rejection_reason *
+arg_conversion_rejection (tree first_arg, int n_arg, tree from, tree to)
+{
+  struct rejection_reason *r = alloc_rejection (rr_arg_conversion);
+  int adjust = first_arg != NULL_TREE;
+  r->u.conversion.n_arg = n_arg - adjust;
+  r->u.conversion.from_type = from;
+  r->u.conversion.to_type = to;
+  return r;
+}
+
+static struct rejection_reason *
+bad_arg_conversion_rejection (tree first_arg, int n_arg, tree from, tree to)
+{
+  struct rejection_reason *r = alloc_rejection (rr_bad_arg_conversion);
+  int adjust = first_arg != NULL_TREE;
+  r->u.bad_conversion.n_arg = n_arg - adjust;
+  r->u.bad_conversion.from_type = from;
+  r->u.bad_conversion.to_type = to;
+  return r;
+}
+
 /* Dynamically allocate a conversion.  */
 
 static conversion *
@@ -1148,6 +1233,10 @@ convert_class_to_reference (tree reference_type, tree s, tree expr, int flags)
          if (TREE_CODE (t2) != REFERENCE_TYPE
              || !reference_compatible_p (t, TREE_TYPE (t2)))
            {
+             /* No need to set cand->reason here; this is most likely
+                an ambiguous match.  If it's not, either this candidate
+                will win, or we will have identified a reason for it
+                losing already.  */
              cand->viable = 0;
            }
          else
@@ -1558,7 +1647,7 @@ add_candidate (struct z_candidate **candidates,
               tree fn, tree first_arg, const VEC(tree,gc) *args,
               size_t num_convs, conversion **convs,
               tree access_path, tree conversion_path,
-              int viable)
+              int viable, struct rejection_reason *reason)
 {
   struct z_candidate *cand = (struct z_candidate *)
     conversion_obstack_alloc (sizeof (struct z_candidate));
@@ -1571,12 +1660,28 @@ add_candidate (struct z_candidate **candidates,
   cand->access_path = access_path;
   cand->conversion_path = conversion_path;
   cand->viable = viable;
+  cand->reason = reason;
   cand->next = *candidates;
   *candidates = cand;
 
   return cand;
 }
 
+/* Return the number of remaining arguments in the parameter list
+   beginning with ARG.  */
+
+static int
+remaining_arguments (tree arg)
+{
+  int n;
+
+  for (n = 0; arg != NULL_TREE && arg != void_list_node;
+       arg = TREE_CHAIN (arg))
+    n++;
+
+  return n;
+}
+
 /* Create an overload candidate for the function or method FN called
    with the argument list FIRST_ARG/ARGS and add it to CANDIDATES.
    FLAGS is passed on to implicit_conversion.
@@ -1599,6 +1704,7 @@ add_function_candidate (struct z_candidate **candidates,
   tree orig_first_arg = first_arg;
   int skip;
   int viable = 1;
+  struct rejection_reason *reason = NULL;
 
   /* At this point we should not see any functions which haven't been
      explicitly declared, except for friend functions which will have
@@ -1638,13 +1744,13 @@ add_function_candidate (struct z_candidate **candidates,
       parmnode = TREE_CHAIN (parmnode);
     }
 
-  if (i < len && parmnode)
-    viable = 0;
-
-  /* Make sure there are default args for the rest of the parms.  */
-  else if (!sufficient_parms_p (parmnode))
-    viable = 0;
-
+  if ((i < len && parmnode)
+      || !sufficient_parms_p (parmnode))
+    {
+      int remaining = remaining_arguments (parmnode);
+      viable = 0;
+      reason = arity_rejection (first_arg, i + remaining, len);
+    }
   /* When looking for a function from a subobject from an implicit
      copy/move constructor/operator=, don't consider anything that takes (a
      reference to) an unrelated type.  See c++/44909 and core 1092.  */
@@ -1680,7 +1786,7 @@ add_function_candidate (struct z_candidate **candidates,
 
   for (i = 0; i < len; ++i)
     {
-      tree arg, argtype;
+      tree arg, argtype, to_type;
       conversion *t;
       int is_this;
 
@@ -1747,11 +1853,13 @@ add_function_candidate (struct z_candidate **candidates,
 
          t = implicit_conversion (parmtype, argtype, arg,
                                   /*c_cast_p=*/false, lflags);
+         to_type = parmtype;
        }
       else
        {
          t = build_identity_conv (argtype, arg);
          t->ellipsis_p = true;
+         to_type = argtype;
        }
 
       if (t && is_this)
@@ -1761,16 +1869,20 @@ add_function_candidate (struct z_candidate **candidates,
       if (! t)
        {
          viable = 0;
+         reason = arg_conversion_rejection (first_arg, i, argtype, to_type);
          break;
        }
 
       if (t->bad_p)
-       viable = -1;
+       {
+         viable = -1;
+         reason = bad_arg_conversion_rejection (first_arg, i, argtype, to_type);
+       }
     }
 
  out:
   return add_candidate (candidates, fn, orig_first_arg, args, len, convs,
-                       access_path, conversion_path, viable);
+                       access_path, conversion_path, viable, reason);
 }
 
 /* Create an overload candidate for the conversion function FN which will
@@ -1794,6 +1906,7 @@ add_conv_candidate (struct z_candidate **candidates, tree fn, tree obj,
   int i, len, viable, flags;
   tree parmlist, parmnode;
   conversion **convs;
+  struct rejection_reason *reason;
 
   for (parmlist = totype; TREE_CODE (parmlist) != FUNCTION_TYPE; )
     parmlist = TREE_TYPE (parmlist);
@@ -1804,6 +1917,7 @@ add_conv_candidate (struct z_candidate **candidates, tree fn, tree obj,
   parmnode = parmlist;
   viable = 1;
   flags = LOOKUP_IMPLICIT;
+  reason = NULL;
 
   /* Don't bother looking up the same type twice.  */
   if (*candidates && (*candidates)->fn == totype)
@@ -1811,7 +1925,7 @@ add_conv_candidate (struct z_candidate **candidates, tree fn, tree obj,
 
   for (i = 0; i < len; ++i)
     {
-      tree arg, argtype;
+      tree arg, argtype, convert_type = NULL_TREE;
       conversion *t;
 
       if (i == 0)
@@ -1824,17 +1938,24 @@ add_conv_candidate (struct z_candidate **candidates, tree fn, tree obj,
       argtype = lvalue_type (arg);
 
       if (i == 0)
-       t = implicit_conversion (totype, argtype, arg, /*c_cast_p=*/false,
-                                flags);
+       {
+         t = implicit_conversion (totype, argtype, arg, /*c_cast_p=*/false,
+                                  flags);
+         convert_type = totype;
+       }
       else if (parmnode == void_list_node)
        break;
       else if (parmnode)
-       t = implicit_conversion (TREE_VALUE (parmnode), argtype, arg,
-                                /*c_cast_p=*/false, flags);
+       {
+         t = implicit_conversion (TREE_VALUE (parmnode), argtype, arg,
+                                  /*c_cast_p=*/false, flags);
+         convert_type = TREE_VALUE (parmnode);
+       }
       else
        {
          t = build_identity_conv (argtype, arg);
          t->ellipsis_p = true;
+         convert_type = argtype;
        }
 
       convs[i] = t;
@@ -1842,7 +1963,10 @@ add_conv_candidate (struct z_candidate **candidates, tree fn, tree obj,
        break;
 
       if (t->bad_p)
-       viable = -1;
+       {
+         viable = -1;
+         reason = bad_arg_conversion_rejection (NULL_TREE, i, argtype, convert_type);
+       }
 
       if (i == 0)
        continue;
@@ -1851,14 +1975,16 @@ add_conv_candidate (struct z_candidate **candidates, tree fn, tree obj,
        parmnode = TREE_CHAIN (parmnode);
     }
 
-  if (i < len)
-    viable = 0;
-
-  if (!sufficient_parms_p (parmnode))
-    viable = 0;
+  if (i < len
+      || ! sufficient_parms_p (parmnode))
+    {
+      int remaining = remaining_arguments (parmnode);
+      viable = 0;
+      reason = arity_rejection (NULL_TREE, i + remaining, len);
+    }
 
   return add_candidate (candidates, totype, first_arg, arglist, len, convs,
-                       access_path, conversion_path, viable);
+                       access_path, conversion_path, viable, reason);
 }
 
 static void
@@ -1871,6 +1997,7 @@ build_builtin_candidate (struct z_candidate **candidates, tree fnname,
   size_t num_convs;
   int viable = 1, i;
   tree types[2];
+  struct rejection_reason *reason = NULL;
 
   types[0] = type1;
   types[1] = type2;
@@ -1898,9 +2025,13 @@ build_builtin_candidate (struct z_candidate **candidates, tree fnname,
          viable = 0;
          /* We need something for printing the candidate.  */
          t = build_identity_conv (types[i], NULL_TREE);
+         reason = arg_conversion_rejection (NULL_TREE, i, argtypes[i], types[i]);
        }
       else if (t->bad_p)
-       viable = 0;
+       {
+         viable = 0;
+         reason = bad_arg_conversion_rejection (NULL_TREE, i, argtypes[i], types[i]);
+       }
       convs[i] = t;
     }
 
@@ -1914,14 +2045,18 @@ build_builtin_candidate (struct z_candidate **candidates, tree fnname,
       if (t)
        convs[0] = t;
       else
-       viable = 0;
+       {
+         viable = 0;
+         reason = arg_conversion_rejection (NULL_TREE, 0, argtypes[2],
+                                            boolean_type_node);
+       }
     }
 
   add_candidate (candidates, fnname, /*first_arg=*/NULL_TREE, /*args=*/NULL,
                 num_convs, convs,
                 /*access_path=*/NULL_TREE,
                 /*conversion_path=*/NULL_TREE,
-                viable);
+                viable, reason);
 }
 
 static bool
@@ -2573,6 +2708,7 @@ add_template_candidate_real (struct z_candidate **candidates, tree tmpl,
   struct z_candidate *cand;
   int i;
   tree fn;
+  struct rejection_reason *reason = NULL;
 
   /* We don't do deduction on the in-charge parameter, the VTT
      parameter or 'this'.  */
@@ -2691,7 +2827,7 @@ add_template_candidate_real (struct z_candidate **candidates, tree tmpl,
   return cand;
  fail:
   return add_candidate (candidates, tmpl, first_arg, arglist, nargs, NULL,
-                       access_path, conversion_path, 0);
+                       access_path, conversion_path, 0, reason);
 }
 
 
@@ -2802,6 +2938,20 @@ equal_functions (tree fn1, tree fn2)
   return fn1 == fn2;
 }
 
+/* Print information about a candidate being rejected due to INFO.  */
+
+static void
+print_conversion_rejection (location_t loc, struct conversion_info *info)
+{
+  if (info->n_arg == -1)
+    /* Conversion of implicit `this' argument failed.  */
+    inform (loc, "no known conversion for implicit %<this%> parameter from %qT to %qT",
+           info->from_type, info->to_type);
+  else
+    inform (loc, "no known conversion for argument %d from %qT to %qT",
+           info->n_arg+1, info->from_type, info->to_type);
+}
+
 /* Print information about one overload candidate CANDIDATE.  MSGSTR
    is the text to print before the candidate itself.
 
@@ -2812,38 +2962,68 @@ equal_functions (tree fn1, tree fn2)
 static void
 print_z_candidate (const char *msgstr, struct z_candidate *candidate)
 {
+  const char *msg = (msgstr == NULL
+                    ? ""
+                    : ACONCAT ((msgstr, " ", NULL)));
+  location_t loc = location_of (candidate->fn);
+
   if (TREE_CODE (candidate->fn) == IDENTIFIER_NODE)
     {
       if (candidate->num_convs == 3)
-       inform (input_location, "%s %D(%T, %T, %T) <built-in>", msgstr, candidate->fn,
+       inform (input_location, "%s%D(%T, %T, %T) <built-in>", msg, candidate->fn,
                candidate->convs[0]->type,
                candidate->convs[1]->type,
                candidate->convs[2]->type);
       else if (candidate->num_convs == 2)
-       inform (input_location, "%s %D(%T, %T) <built-in>", msgstr, candidate->fn,
+       inform (input_location, "%s%D(%T, %T) <built-in>", msg, candidate->fn,
                candidate->convs[0]->type,
                candidate->convs[1]->type);
       else
-       inform (input_location, "%s %D(%T) <built-in>", msgstr, candidate->fn,
+       inform (input_location, "%s%D(%T) <built-in>", msg, candidate->fn,
                candidate->convs[0]->type);
     }
   else if (TYPE_P (candidate->fn))
-    inform (input_location, "%s %T <conversion>", msgstr, candidate->fn);
+    inform (input_location, "%s%T <conversion>", msg, candidate->fn);
   else if (candidate->viable == -1)
-    inform (input_location, "%s %+#D <near match>", msgstr, candidate->fn);
+    inform (loc, "%s%#D <near match>", msg, candidate->fn);
   else if (DECL_DELETED_FN (STRIP_TEMPLATE (candidate->fn)))
-    inform (input_location, "%s %+#D <deleted>", msgstr, candidate->fn);
+    inform (loc, "%s%#D <deleted>", msg, candidate->fn);
   else
-    inform (input_location, "%s %+#D", msgstr, candidate->fn);
+    inform (loc, "%s%#D", msg, candidate->fn);
+  /* Give the user some information about why this candidate failed.  */
+  if (candidate->reason != NULL)
+    {
+      struct rejection_reason *r = candidate->reason;
+
+      switch (r->code)
+       {
+       case rr_arity:
+         inform_n (loc, r->u.arity.expected,
+                   "  candidate expects %d argument, %d provided",
+                   "  candidate expects %d arguments, %d provided",
+                   r->u.arity.expected, r->u.arity.actual);
+         break;
+       case rr_arg_conversion:
+         print_conversion_rejection (loc, &r->u.conversion);
+         break;
+       case rr_bad_arg_conversion:
+         print_conversion_rejection (loc, &r->u.bad_conversion);
+         break;
+       case rr_none:
+       default:
+         /* This candidate didn't have any issues or we failed to
+            handle a particular code.  Either way...  */
+         gcc_unreachable ();
+       }
+    }
 }
 
 static void
-print_z_candidates (struct z_candidate *candidates)
+print_z_candidates (location_t loc, struct z_candidate *candidates)
 {
-  const char *str;
   struct z_candidate *cand1;
   struct z_candidate **cand2;
-  char *spaces;
+  int n_candidates;
 
   if (!candidates)
     return;
@@ -2885,14 +3065,12 @@ print_z_candidates (struct z_candidate *candidates)
        }
     }
 
-  str = candidates->next ? _("candidates are:") :  _("candidate is:");
-  spaces = NULL;
+  for (n_candidates = 0, cand1 = candidates; cand1; cand1 = cand1->next)
+    n_candidates++;
+
+  inform_n (loc, n_candidates, "candidate is:", "candidates are:");
   for (; candidates; candidates = candidates->next)
-    {
-      print_z_candidate (spaces ? spaces : str, candidates);
-      spaces = spaces ? spaces : get_spaces (str);
-    }
-  free (spaces);
+    print_z_candidate (NULL, candidates);
 }
 
 /* USER_SEQ is a user-defined conversion sequence, beginning with a
@@ -3129,9 +3307,20 @@ build_user_type_conversion_1 (tree totype, tree expr, int flags)
          cand->second_conv = ics;
 
          if (!ics)
-           cand->viable = 0;
+           {
+             tree rettype = TREE_TYPE (TREE_TYPE (cand->fn));
+             cand->viable = 0;
+             cand->reason = arg_conversion_rejection (NULL_TREE, -1,
+                                                      rettype, totype);
+           }
          else if (cand->viable == 1 && ics->bad_p)
-           cand->viable = -1;
+           {
+             tree rettype = TREE_TYPE (TREE_TYPE (cand->fn));
+             cand->viable = -1;
+             cand->reason
+               = bad_arg_conversion_rejection (NULL_TREE, -1,
+                                               rettype, totype);
+           }
        }
     }
 
@@ -3146,7 +3335,7 @@ build_user_type_conversion_1 (tree totype, tree expr, int flags)
        {
          error ("conversion from %qT to %qT is ambiguous",
                    fromtype, totype);
-         print_z_candidates (candidates);
+         print_z_candidates (location_of (expr), candidates);
        }
 
       cand = candidates;       /* any one will do */
@@ -3346,6 +3535,28 @@ perform_overload_resolution (tree fn,
   return cand;
 }
 
+/* Print an error message about being unable to build a call to FN with
+   ARGS.  ANY_VIABLE_P indicates whether any candidate functions could
+   be located; CANDIDATES is a possibly empty list of such
+   functions.  */
+
+static void
+print_error_for_call_failure (tree fn, VEC(tree,gc) *args, bool any_viable_p,
+                             struct z_candidate *candidates)
+{
+  tree name = DECL_NAME (OVL_CURRENT (fn));
+  location_t loc = location_of (name);
+
+  if (!any_viable_p)
+    error_at (loc, "no matching function for call to %<%D(%A)%>",
+             name, build_tree_list_vec (args));
+  else
+    error_at (loc, "call of overloaded %<%D(%A)%> is ambiguous",
+             name, build_tree_list_vec (args));
+  if (candidates)
+    print_z_candidates (loc, candidates);
+}
+
 /* Return an expression for a call to FN (a namespace-scope function,
    or a static member function) with the ARGS.  This may change
    ARGS.  */
@@ -3377,9 +3588,7 @@ build_new_function_call (tree fn, VEC(tree,gc) **args, bool koenig_p,
       if (!fn)
        {
          if (complain & tf_error)
-           error ("no matching function for call to %<%D(%A)%>",
-                  DECL_NAME (OVL_CURRENT (orig_fn)),
-                  build_tree_list_vec (*args));
+           print_error_for_call_failure (orig_fn, *args, false, NULL);
          return error_mark_node;
        }
     }
@@ -3398,14 +3607,7 @@ build_new_function_call (tree fn, VEC(tree,gc) **args, bool koenig_p,
            return cp_build_function_call_vec (candidates->fn, args, complain);
          if (TREE_CODE (fn) == TEMPLATE_ID_EXPR)
            fn = TREE_OPERAND (fn, 0);
-         if (!any_viable_p)
-           error ("no matching function for call to %<%D(%A)%>",
-                  DECL_NAME (OVL_CURRENT (fn)), build_tree_list_vec (*args));
-         else
-           error ("call of overloaded %<%D(%A)%> is ambiguous",
-                  DECL_NAME (OVL_CURRENT (fn)), build_tree_list_vec (*args));
-         if (candidates)
-           print_z_candidates (candidates);
+         print_error_for_call_failure (fn, *args, any_viable_p, candidates);
        }
       result = error_mark_node;
     }
@@ -3463,14 +3665,7 @@ build_operator_new_call (tree fnname, VEC(tree,gc) **args,
      and give up.  */
   if (!cand)
     {
-      if (!any_viable_p)
-       error ("no matching function for call to %<%D(%A)%>",
-              DECL_NAME (OVL_CURRENT (fns)), build_tree_list_vec (*args));
-      else
-       error ("call of overloaded %<%D(%A)%> is ambiguous",
-              DECL_NAME (OVL_CURRENT (fns)), build_tree_list_vec (*args));
-      if (candidates)
-       print_z_candidates (candidates);
+      print_error_for_call_failure (fns, *args, any_viable_p, candidates);
       return error_mark_node;
     }
 
@@ -3620,7 +3815,7 @@ build_op_call (tree obj, VEC(tree,gc) **args, tsubst_flags_t complain)
         {
           error ("no match for call to %<(%T) (%A)%>", TREE_TYPE (obj),
                 build_tree_list_vec (*args));
-          print_z_candidates (candidates);
+          print_z_candidates (location_of (TREE_TYPE (obj)), candidates);
         }
       result = error_mark_node;
     }
@@ -3633,7 +3828,7 @@ build_op_call (tree obj, VEC(tree,gc) **args, tsubst_flags_t complain)
             {
               error ("call of %<(%T) (%A)%> is ambiguous", 
                      TREE_TYPE (obj), build_tree_list_vec (*args));
-              print_z_candidates (candidates);
+              print_z_candidates (location_of (TREE_TYPE (obj)), candidates);
             }
          result = error_mark_node;
        }
@@ -4052,7 +4247,7 @@ build_conditional_expr (tree arg1, tree arg2, tree arg3,
           if (complain & tf_error)
             {
               op_error (COND_EXPR, NOP_EXPR, arg1, arg2, arg3, FALSE);
-              print_z_candidates (candidates);
+              print_z_candidates (location_of (arg1), candidates);
             }
          return error_mark_node;
        }
@@ -4062,7 +4257,7 @@ build_conditional_expr (tree arg1, tree arg2, tree arg3,
           if (complain & tf_error)
             {
               op_error (COND_EXPR, NOP_EXPR, arg1, arg2, arg3, FALSE);
-              print_z_candidates (candidates);
+              print_z_candidates (location_of (arg1), candidates);
             }
          return error_mark_node;
        }
@@ -4581,7 +4776,7 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
                    /* ... Otherwise, report the more generic
                       "no matching operator found" error */
                    op_error (code, code2, arg1, arg2, arg3, FALSE);
-                   print_z_candidates (candidates);
+                   print_z_candidates (input_location, candidates);
                  }
            }
          result = error_mark_node;
@@ -4596,7 +4791,7 @@ build_new_op (enum tree_code code, int flags, tree arg1, tree arg2, tree arg3,
          if ((flags & LOOKUP_COMPLAIN) && (complain & tf_error))
            {
              op_error (code, code2, arg1, arg2, arg3, TRUE);
-             print_z_candidates (candidates);
+             print_z_candidates (input_location, candidates);
            }
          result = error_mark_node;
        }
@@ -6656,7 +6851,7 @@ build_new_method_call (tree instance, tree fns, VEC(tree,gc) **args,
              if (free_p)
                free (pretty_name);
            }
-         print_z_candidates (candidates);
+         print_z_candidates (location_of (name), candidates);
        }
       call = error_mark_node;
     }
@@ -6677,7 +6872,7 @@ build_new_method_call (tree instance, tree fns, VEC(tree,gc) **args,
                arglist = TREE_CHAIN (arglist);
              error ("call of overloaded %<%s(%A)%> is ambiguous", pretty_name,
                     arglist);
-             print_z_candidates (candidates);
+             print_z_candidates (location_of (name), candidates);
              if (free_p)
                free (pretty_name);
            }
index e505dad..b4e005e 100644 (file)
@@ -1,3 +1,175 @@
+2010-12-08  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR c++/45329
+       * testsuite/g++.dg/conversion/ambig1.C: Adjust.
+       * testsuite/g++.dg/conversion/op1.C: Adjust.
+       * testsuite/g++.dg/conversion/simd1.C: Adjust.
+       * testsuite/g++.dg/cpp0x/defaulted14.C: Adjust.
+       * testsuite/g++.dg/cpp0x/defaulted18.C: Adjust.
+       * testsuite/g++.dg/cpp0x/defaulted20.C: Adjust.
+       * testsuite/g++.dg/cpp0x/explicit3.C: Adjust.
+       * testsuite/g++.dg/cpp0x/explicit4.C: Adjust.
+       * testsuite/g++.dg/cpp0x/implicit4.C: Adjust.
+       * testsuite/g++.dg/cpp0x/nullptr15.C: Adjust.
+       * testsuite/g++.dg/cpp0x/nullptr19.C: Adjust.
+       * testsuite/g++.dg/cpp0x/pr31431-2.C: Adjust.
+       * testsuite/g++.dg/cpp0x/pr31431.C: Adjust.
+       * testsuite/g++.dg/cpp0x/pr31434.C: Adjust.
+       * testsuite/g++.dg/cpp0x/pr31437.C: Adjust.
+       * testsuite/g++.dg/cpp0x/rv2n.C: Adjust.
+       * testsuite/g++.dg/cpp0x/rv3n.C: Adjust.
+       * testsuite/g++.dg/cpp0x/rv4n.C: Adjust.
+       * testsuite/g++.dg/cpp0x/rv5n.C: Adjust.
+       * testsuite/g++.dg/cpp0x/rv6n.C: Adjust.
+       * testsuite/g++.dg/cpp0x/rv7n.C: Adjust.
+       * testsuite/g++.dg/cpp0x/temp_default2.C: Adjust.
+       * testsuite/g++.dg/cpp0x/trailing4.C: Adjust.
+       * testsuite/g++.dg/cpp0x/variadic-ex3.C: Adjust.
+       * testsuite/g++.dg/cpp0x/variadic-ex4.C: Adjust.
+       * testsuite/g++.dg/cpp0x/variadic35.C: Adjust.
+       * testsuite/g++.dg/cpp0x/vt-35147.C: Adjust.
+       * testsuite/g++.dg/cpp0x/vt-37737-2.C: Adjust.
+       * testsuite/g++.dg/expr/cond9.C: Adjust.
+       * testsuite/g++.dg/expr/pmf-1.C: Adjust.
+       * testsuite/g++.dg/ext/label5.C: Adjust.
+       * testsuite/g++.dg/ext/visibility/anon8.C: Adjust.
+       * testsuite/g++.dg/ext/vla2.C: Adjust.
+       * testsuite/g++.dg/gomp/pr26690-1.C: Adjust.
+       * testsuite/g++.dg/gomp/pr26690-2.C: Adjust.
+       * testsuite/g++.dg/init/synth2.C: Adjust.
+       * testsuite/g++.dg/lookup/conv-1.C: Adjust.
+       * testsuite/g++.dg/lookup/new1.C: Adjust.
+       * testsuite/g++.dg/lookup/using9.C: Adjust.
+       * testsuite/g++.dg/other/error13.C: Adjust.
+       * testsuite/g++.dg/other/error20.C: Adjust.
+       * testsuite/g++.dg/other/error31.C: Adjust.
+       * testsuite/g++.dg/other/pr28114.C: Adjust.
+       * testsuite/g++.dg/other/ptrmem10.C: Adjust.
+       * testsuite/g++.dg/other/ptrmem11.C: Adjust.
+       * testsuite/g++.dg/overload/ambig1.C: Adjust.
+       * testsuite/g++.dg/overload/arg3.C: Adjust.
+       * testsuite/g++.dg/overload/builtin1.C: Adjust.
+       * testsuite/g++.dg/overload/copy1.C: Adjust.
+       * testsuite/g++.dg/overload/new1.C: Adjust.
+       * testsuite/g++.dg/overload/template4.C: Adjust.
+       * testsuite/g++.dg/overload/unknown1.C: Adjust.
+       * testsuite/g++.dg/overload/using2.C: Adjust.
+       * testsuite/g++.dg/parse/crash5.C: Adjust.
+       * testsuite/g++.dg/parse/error19.C: Adjust.
+       * testsuite/g++.dg/parse/error28.C: Adjust.
+       * testsuite/g++.dg/parse/template7.C: Adjust.
+       * testsuite/g++.dg/parse/typename7.C: Adjust.
+       * testsuite/g++.dg/rtti/typeid6.C: Adjust.
+       * testsuite/g++.dg/tc1/dr152.C: Adjust.
+       * testsuite/g++.dg/template/conv11.C: Adjust.
+       * testsuite/g++.dg/template/copy1.C: Adjust.
+       * testsuite/g++.dg/template/crash37.C: Adjust.
+       * testsuite/g++.dg/template/deduce3.C: Adjust.
+       * testsuite/g++.dg/template/dependent-expr5.C: Adjust.
+       * testsuite/g++.dg/template/error38.C: Adjust.
+       * testsuite/g++.dg/template/error40.C: Adjust.
+       * testsuite/g++.dg/template/friend.C: Adjust.
+       * testsuite/g++.dg/template/incomplete2.C: Adjust.
+       * testsuite/g++.dg/template/instantiate5.C: Adjust.
+       * testsuite/g++.dg/template/local4.C: Adjust.
+       * testsuite/g++.dg/template/local6.C: Adjust.
+       * testsuite/g++.dg/template/new3.C: Adjust.
+       * testsuite/g++.dg/template/operator9.C: Adjust.
+       * testsuite/g++.dg/template/overload6.C: Adjust.
+       * testsuite/g++.dg/template/ptrmem2.C: Adjust.
+       * testsuite/g++.dg/template/ptrmem20.C: Adjust.
+       * testsuite/g++.dg/template/ptrmem4.C: Adjust.
+       * testsuite/g++.dg/template/ptrmem8.C: Adjust.
+       * testsuite/g++.dg/template/qualttp5.C: Adjust.
+       * testsuite/g++.dg/template/sfinae2.C: Adjust.
+       * testsuite/g++.dg/template/spec22.C: Adjust.
+       * testsuite/g++.dg/template/spec23.C: Adjust.
+       * testsuite/g++.dg/template/ttp25.C: Adjust.
+       * testsuite/g++.dg/template/typedef4.C: Adjust.
+       * testsuite/g++.dg/template/unify10.C: Adjust.
+       * testsuite/g++.dg/template/unify11.C: Adjust.
+       * testsuite/g++.dg/template/unify6.C: Adjust.
+       * testsuite/g++.dg/template/unify7.C: Adjust.
+       * testsuite/g++.dg/template/unify9.C: Adjust.
+       * testsuite/g++.dg/template/varmod1.C: Adjust.
+       * testsuite/g++.old-deja/g++.benjamin/15799.C: Adjust.
+       * testsuite/g++.old-deja/g++.benjamin/15800-1.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/ambiguity1.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/crash29.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/crash48.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/crash56.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/cvt3.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/overload1.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/overload4.C: Adjust.
+       * testsuite/g++.old-deja/g++.brendan/overload9.C: Adjust.
+       * testsuite/g++.old-deja/g++.bugs/900127_01.C: Adjust.
+       * testsuite/g++.old-deja/g++.bugs/900205_04.C: Adjust.
+       * testsuite/g++.old-deja/g++.bugs/900330_02.C: Adjust.
+       * testsuite/g++.old-deja/g++.bugs/900404_03.C: Adjust.
+       * testsuite/g++.old-deja/g++.bugs/900514_03.C: Adjust.
+       * testsuite/g++.old-deja/g++.eh/ctor1.C: Adjust.
+       * testsuite/g++.old-deja/g++.jason/conversion11.C: Adjust.
+       * testsuite/g++.old-deja/g++.jason/crash3.C: Adjust.
+       * testsuite/g++.old-deja/g++.jason/overload16.C: Adjust.
+       * testsuite/g++.old-deja/g++.jason/overload28.C: Adjust.
+       * testsuite/g++.old-deja/g++.jason/scoping10.C: Adjust.
+       * testsuite/g++.old-deja/g++.jason/template30.C: Adjust.
+       * testsuite/g++.old-deja/g++.jason/temporary2.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/arg1.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/arg11.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/arm9.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/ctors11.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/ctors17.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/ctors5.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/ctors9.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/enum4.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/missed-error2.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/operators32.C: Adjust.
+       * testsuite/g++.old-deja/g++.law/operators9.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/net2.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/net22.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/p11110.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/p1989.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/p2431.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/p438.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/p807a.C: Adjust.
+       * testsuite/g++.old-deja/g++.mike/p9068.C: Adjust.
+       * testsuite/g++.old-deja/g++.niklas/t120.C: Adjust.
+       * testsuite/g++.old-deja/g++.niklas/t121.C: Adjust.
+       * testsuite/g++.old-deja/g++.niklas/t128.C: Adjust.
+       * testsuite/g++.old-deja/g++.ns/overload2.C: Adjust.
+       * testsuite/g++.old-deja/g++.ns/using12.C: Adjust.
+       * testsuite/g++.old-deja/g++.other/crash24.C: Adjust.
+       * testsuite/g++.old-deja/g++.other/expr1.C: Adjust.
+       * testsuite/g++.old-deja/g++.other/overload11.C: Adjust.
+       * testsuite/g++.old-deja/g++.other/pmf3.C: Adjust.
+       * testsuite/g++.old-deja/g++.other/volatile1.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/auto_ptr.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/crash28.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/crash60.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/explicit38.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/explicit39.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/explicit41.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/explicit67.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/explicit77.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/expr2.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/ptrmem10.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/ptrmem6.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/spec35.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/spec5.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/spec6.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/t05.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/t24.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/unify4.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/unify6.C: Adjust.
+       * testsuite/g++.old-deja/g++.pt/unify8.C: Adjust.
+       * testsuite/g++.old-deja/g++.robertl/eb109.C: Adjust.
+       * testsuite/g++.old-deja/g++.robertl/eb119.C: Adjust.
+       * testsuite/g++.old-deja/g++.robertl/eb131.C: Adjust.
+       * testsuite/g++.old-deja/g++.robertl/eb22.C: Adjust.
+       * testsuite/g++.old-deja/g++.robertl/eb69.C: Adjust.
+       * testsuite/g++.old-deja/g++.robertl/eb98.C: Adjust.
+
 2010-12-08  Jason Merrill  <jason@redhat.com>
 
        PR c++/45822
index 1db1667..85ea1d2 100644 (file)
@@ -6,3 +6,4 @@ struct H {
 };
 
 int const& ref = H(); // { dg-error "ambiguous" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 8 }
index 65b925a..e0a3e5f 100644 (file)
@@ -1,10 +1,11 @@
 class C
 {
   template<typename U> 
-  operator U();                        // { dg-message "candidate" }
+  operator U();                        // { dg-message "note" }
 };
 
 int fn (C c) 
 { 
   return C::operator float(c); // { dg-error "operator float.C" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 }
index 56be6f4..fa40b0e 100644 (file)
@@ -5,8 +5,8 @@
 
 #define vector __attribute__((vector_size(16)))
 
-vector signed int vld (int a1, const vector signed int *a2) { return *a2; } /* { dg-message "vld" } */
-vector signed short vld (int a1, const vector signed short *a2) { return *a2; } /* { dg-message "vld" } */
+vector signed int vld (int a1, const vector signed int *a2) { return *a2; } /* { dg-message "vld|no known conversion" } */
+vector signed short vld (int a1, const vector signed short *a2) { return *a2; } /* { dg-message "vld|no known conversion" } */
 
 extern int i;
 extern vector signed short vss;
@@ -17,6 +17,7 @@ extern const vector signed short *cvssp;
 void foo ()
 {
   vss = vld(i, vscp);        /* { dg-error "no matching function for call" } */
+  // { dg-message "candidate" "candidate note" { target *-*-* } 19 }
   vss = vld(i, vssp);
   vss = vld(i, cvssp);
 }
index 235e646..e476d57 100644 (file)
@@ -14,5 +14,7 @@ int main()
 {
   A a;
   a = B();             // { dg-error "no match" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
   a = 1.0;             // { dg-error "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 18 }
 }
index ae055e3..559dfde 100644 (file)
@@ -6,4 +6,5 @@ void f(int i, ...);             // { dg-message "void f" }
 int main()
 {
   f(1,1);                      // { dg-error "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
index d9ad04f..5d536a9 100644 (file)
@@ -2,12 +2,13 @@
 // { dg-options -std=c++0x }
 
 struct A {
-  A(A&&) = default;            // { dg-message "A::A" }
+  A(A&&) = default;            // { dg-message "A::A|no known conversion" }
 };
 struct B {
   const A a;
   B(const B&) = default;
   B(B&&) = default;            // { dg-error "implicitly deleted|no match" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
 };
 
 void g(B);                     // { dg-error "argument 1" }
index cd37a15..be0a14e 100644 (file)
@@ -42,6 +42,7 @@ int main()
   // These do not.
   switch (a);                  // { dg-error "" }
   bool b = a;                  // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 44 }
   f(a);                                // { dg-error "" }
   B b2 = { a };                        // { dg-error "" }
   a + true;                    // { dg-message "" }
index 67c60f6..0f3bc62 100644 (file)
@@ -2,7 +2,7 @@
 // { dg-options "-std=c++0x" }
 
 struct A {
-  A(const A&, int = 0);                // { dg-message "candidate" }
+  A(const A&, int = 0);                // { dg-message "note" }
 };
 struct B
 {
@@ -14,4 +14,5 @@ int main()
   B b;
   (A(b));                      // OK
   (A(b,1));                    // { dg-error "no match" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
 }
index 75606a3..f97eb75 100644 (file)
@@ -4,11 +4,12 @@
 
 struct A
 {
-  A();                         // { dg-message "A::A" }
-  A(A&&);                      // { dg-message "A::A" }
+  A();                         // { dg-message "A::A|candidate expects" }
+  A(A&&);                      // { dg-message "A::A|no known conversion" }
 };
 
 struct B: A                    // { dg-error "implicit|no match" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 11 }
 {
 };
 
index 67d9d4a..e02fd55 100644 (file)
@@ -10,15 +10,17 @@ template <typename T, typename U>
 inline typename tType_equal<T, U>::type
 type_equal(U) { }
 
-template<typename T> T* g( T* t ); // { dg-message "candidate" }
+template<typename T> T* g( T* t ); // { dg-message "note" }
 
 void test_g()
 {
   // Deduction to nullptr_t, no deduction to pointer type
   //
   g(nullptr);               // { dg-error "no matching function for call to " }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 19 }
   type_equal<float*>(g((float*)nullptr));
   decltype(nullptr) mynull = 0;
   g(mynull);                // { dg-error "no matching function for call to " }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 23 }
   type_equal<float*>(g((float*)mynull));
 }
index 7eb00bb..cf30f1c 100644 (file)
@@ -11,5 +11,7 @@ nullptr_t k( nullptr_t ); /* { dg-message "note" } { dg-message "note" } */
 void test_k()
 {
   k(0); /* { dg-error "is ambiguous" } */
+  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
   k(__null); /* { dg-error "is ambiguous" } */
+  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
index 59e1afe..15efbc5 100644 (file)
@@ -1,7 +1,8 @@
 // { dg-options "-std=gnu++0x" }
-template<typename, typename..., typename> void foo(); // { dg-message "candidate" }
+template<typename, typename..., typename> void foo(); // { dg-message "note" }
 
 void bar()
 {
   foo<int>(); // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 6 }
 }
index b150a04..36f341f 100644 (file)
@@ -1,7 +1,8 @@
 // { dg-options "-std=gnu++0x" }
-template<typename..., typename> void foo(); // { dg-message "candidate" }
+template<typename..., typename> void foo(); // { dg-message "note" }
 
 void bar()
 {
   foo<int>(); // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 6 }
 }
index a785ae9..97ad079 100644 (file)
@@ -8,4 +8,5 @@ template<typename... T> int foo(const T&) // { dg-error "not expanded with|T" }
 void bar()
 {
   foo(0); // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
 }
index 812c695..0b64f72 100644 (file)
@@ -7,3 +7,4 @@ template <typename... T> struct A // { dg-error "candidates|A" }
 };
 
 A<int> a(0); // { dg-error "no matching" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 9 }
index a5c5177..2b3a9c0 100644 (file)
@@ -30,7 +30,7 @@ const volatile A cv_source();
 
 // 2 at a time
 
-one   sink_2_12(               A&);  // { dg-message "candidates|argument" }
+one   sink_2_12(               A&);  // { dg-message "note|argument" }
 two   sink_2_12(const          A&);  // { dg-message "note|argument" }
 
 int test2_12()
@@ -40,13 +40,17 @@ int test2_12()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_12(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 42 }
     sink_2_12(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 44 }
     sink_2_12(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 46 }
     sink_2_12(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 48 }
     return 0;
 }
 
-one   sink_2_13(               A&);  // { dg-message "candidates|argument" }
+one   sink_2_13(               A&);  // { dg-message "note|argument" }
 three sink_2_13(volatile       A&);  // { dg-message "note|argument" }
 
 int test2_13()
@@ -56,15 +60,21 @@ int test2_13()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_13(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 62 }
     sink_2_13(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 64 }
     sink_2_13(source());     // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
     sink_2_13(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 68 }
     sink_2_13(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 70 }
     sink_2_13(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 72 }
     return 0;
 }
 
-one   sink_2_14(               A&);  // { dg-message "candidates|argument" }
+one   sink_2_14(               A&);  // { dg-message "note|argument" }
 four  sink_2_14(const volatile A&);  // { dg-message "note|argument" }
 
 int test2_14()
@@ -74,13 +84,17 @@ int test2_14()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_14(source());     // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 86 }
     sink_2_14(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 88 }
     sink_2_14(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 90 }
     sink_2_14(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 92 }
     return 0;
 }
 
-one   sink_2_15(               A&);  // { dg-message "candidates|argument" }
+one   sink_2_15(               A&);  // { dg-message "note|argument" }
 five  sink_2_15(               A&&);  // { dg-message "note|argument" }
 
 int test2_15()
@@ -90,15 +104,21 @@ int test2_15()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
    sink_2_15(ca);           // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 106 }
    sink_2_15(va);           // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 108 }
    sink_2_15(cva);          // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 110 }
    sink_2_15(c_source());   // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 112 }
    sink_2_15(v_source());   // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 114 }
    sink_2_15(cv_source());  // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 116 }
     return 0;
 }
 
-one   sink_2_16(               A&);  // { dg-message "candidates|argument" }
+one   sink_2_16(               A&);  // { dg-message "note|argument" }
 six   sink_2_16(const          A&&);  // { dg-message "note|argument" }
 
 int test2_16()
@@ -109,13 +129,17 @@ int test2_16()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_16(ca);          // { dg-error "lvalue" }
     sink_2_16(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 131 }
     sink_2_16(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 133 }
     sink_2_16(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 135 }
     sink_2_16(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 137 }
     return 0;
 }
 
-one   sink_2_17(               A&);  // { dg-message "candidates|argument" }
+one   sink_2_17(               A&);  // { dg-message "note|argument" }
 seven sink_2_17(volatile       A&&);  // { dg-message "note|argument" }
 
 int test2_17()
@@ -125,10 +149,14 @@ int test2_17()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_17(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 151 }
     sink_2_17(va);           // { dg-error "lvalue" }
     sink_2_17(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 154 }
     sink_2_17(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 156 }
     sink_2_17(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 158 }
     return 0;
 }
 
@@ -146,7 +174,7 @@ int test2_18()
     sink_2_18(cva);            // { dg-error "lvalue" }
 }
 
-two   sink_2_23(const          A&);  // { dg-message "candidates|argument" }
+two   sink_2_23(const          A&);  // { dg-message "note|argument" }
 three sink_2_23(volatile       A&);  // { dg-message "note|argument" }
 
 int test2_23()
@@ -156,13 +184,17 @@ int test2_23()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_23(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 186 }
     sink_2_23(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 188 }
     sink_2_23(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 190 }
     sink_2_23(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 192 }
     return 0;
 }
 
-two   sink_2_24(const          A&);  // { dg-message "candidates|argument" }
+two   sink_2_24(const          A&);  // { dg-message "note|argument" }
 four  sink_2_24(const volatile A&);  // { dg-message "note|argument" }
 
 int test2_24()
@@ -172,11 +204,13 @@ int test2_24()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_24(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 206 }
     sink_2_24(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 208 }
     return 0;
 }
 
-three sink_2_34(volatile       A&);  // { dg-message "candidate" }
+three sink_2_34(volatile       A&);  // { dg-message "three sink_2_34|no known conversion" }
 four  sink_2_34(const volatile A&);  // { dg-message "note|argument" }
 
 int test2_34()
@@ -186,13 +220,17 @@ int test2_34()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_34(source());     // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 222 }
     sink_2_34(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 224 }
     sink_2_34(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 226 }
     sink_2_34(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 228 }
     return 0;
 }
 
-two   sink_2_25(const          A&);  // { dg-message "candidate" }
+two   sink_2_25(const          A&);  // { dg-message "two sink_2_25|no known conversion" }
 five  sink_2_25(               A&&);  // { dg-message "note|argument" }
 
 int test2_25()
@@ -202,13 +240,17 @@ int test2_25()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
    sink_2_25(va);           // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 242 }
    sink_2_25(cva);          // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 244 }
    sink_2_25(v_source());   // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 246 }
    sink_2_25(cv_source());  // { dg-error "no match" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 248 }
     return 0;
 }
 
-two   sink_2_26(const          A&);  // { dg-message "candidate" }
+two   sink_2_26(const          A&);  // { dg-message "two sink_2_26|no known conversion" }
 six   sink_2_26(const          A&&);  // { dg-message "note|argument" }
 
 int test2_26()
@@ -218,13 +260,17 @@ int test2_26()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_26(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 262 }
     sink_2_26(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 264 }
     sink_2_26(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 266 }
     sink_2_26(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 268 }
     return 0;
 }
 
-two   sink_2_27(const          A&);  // { dg-message "candidate" }
+two   sink_2_27(const          A&);  // { dg-message "two sink_2_27|no known conversion" }
 seven sink_2_27(volatile       A&&);  // { dg-message "note|argument" }
 
 int test2_27()
@@ -235,7 +281,9 @@ int test2_27()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_27(va);          // { dg-error "lvalue" }
     sink_2_27(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 283 }
     sink_2_27(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 285 }
     return 0;
 }
 
@@ -252,7 +300,7 @@ int test2_28()
     sink_2_28(cva);            // { dg-error "lvalue" }
 }
 
-three sink_2_35(volatile       A&);  // { dg-message "candidate" }
+three sink_2_35(volatile       A&);  // { dg-message "three sink_2_35|no known conversion" }
 five  sink_2_35(               A&&);  // { dg-message "note|argument" }
 
 int test2_35()
@@ -262,14 +310,19 @@ int test2_35()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_35(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 312 }
     sink_2_35(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 314 }
     sink_2_35(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 316 }
     sink_2_35(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 318 }
     sink_2_35(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 320 }
     return 0;
 }
 
-three sink_2_36(volatile       A&);  // { dg-message "candidate" }
+three sink_2_36(volatile       A&);  // { dg-message "three sink_2_36|no known conversion" }
 six   sink_2_36(const          A&&);  // { dg-message "note|argument" }
 
 int test2_36()
@@ -280,12 +333,15 @@ int test2_36()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_36(ca);             // { dg-error "lvalue" }
     sink_2_36(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 335 }
     sink_2_36(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 337 }
     sink_2_36(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 339 }
     return 0;
 }
 
-three sink_2_37(volatile       A&);  // { dg-message "candidate" }
+three sink_2_37(volatile       A&);  // { dg-message "three sink_2_37|no known conversion" }
 seven sink_2_37(volatile       A&&);  // { dg-message "note|argument" }
 
 int test2_37()
@@ -295,9 +351,13 @@ int test2_37()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_37(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 353 }
     sink_2_37(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 355 }
     sink_2_37(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 357 }
     sink_2_37(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 359 }
     return 0;
 }
 
@@ -314,7 +374,7 @@ int test2_38()
     sink_2_38(cva);            // { dg-error "lvalue" }
 }
 
-four  sink_2_45(const volatile A&);   // { dg-message "candidate" }
+four  sink_2_45(const volatile A&);   // { dg-message "note" }
 five  sink_2_45(               A&&);  // { dg-message "note|argument" }
 
 int test2_45()
@@ -324,12 +384,15 @@ int test2_45()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_45(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 386 }
     sink_2_45(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 388 }
     sink_2_45(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 390 }
     return 0;
 }
 
-four  sink_2_46(const volatile A&);   // { dg-message "candidate" }
+four  sink_2_46(const volatile A&);   // { dg-message "note" }
 six   sink_2_46(const          A&&);  // { dg-message "note|argument" }
 
 int test2_46()
@@ -339,11 +402,13 @@ int test2_46()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_46(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 404 }
     sink_2_46(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 406 }
     return 0;
 }
 
-four  sink_2_47(const volatile A&);   // { dg-message "candidate" }
+four  sink_2_47(const volatile A&);   // { dg-message "note" }
 seven sink_2_47(volatile       A&&);  // { dg-message "note|argument" }
 
 int test2_47()
@@ -353,11 +418,13 @@ int test2_47()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_47(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 420 }
     sink_2_47(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 422 }
     return 0;
 }
 
-five  sink_2_56(               A&&);  // { dg-message "candidate|argument" }
+five  sink_2_56(               A&&);  // { dg-message "note|argument" }
 six   sink_2_56(const          A&&);  // { dg-message "note|argument" }
 
 int test2_56()
@@ -369,13 +436,17 @@ int test2_56()
     sink_2_56(a);              // { dg-error "lvalue" }
     sink_2_56(ca);             // { dg-error "lvalue" }
     sink_2_56(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 438 }
     sink_2_56(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 440 }
     sink_2_56(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 442 }
     sink_2_56(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 444 }
     return 0;
 }
 
-five  sink_2_57(               A&&);  // { dg-message "candidate|argument" }
+five  sink_2_57(               A&&);  // { dg-message "note|argument" }
 seven sink_2_57(volatile       A&&);  // { dg-message "note|argument" }
 
 int test2_57()
@@ -387,9 +458,13 @@ int test2_57()
     sink_2_57(a);              // { dg-error "lvalue" }
     sink_2_57(va);             // { dg-error "lvalue" }
     sink_2_57(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 460 }
     sink_2_57(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 462 }
     sink_2_57(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 464 }
     sink_2_57(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 466 }
     return 0;
 }
 
@@ -408,7 +483,7 @@ int test2_58()
     sink_2_58(cva);            // { dg-error "lvalue" }
 }
 
-six   sink_2_67(const          A&&);  // { dg-message "candidate|argument" }
+six   sink_2_67(const          A&&);  // { dg-message "note|argument" }
 seven sink_2_67(volatile       A&&);  // { dg-message "note|argument" }
 
 int test2_67()
@@ -418,11 +493,15 @@ int test2_67()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_2_67(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 495 }
     sink_2_67(ca);          // { dg-error "lvalue" }
     sink_2_67(va);          // { dg-error "lvalue" }
     sink_2_67(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 499 }
     sink_2_67(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 501 }
     sink_2_67(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 503 }
     return 0;
 }
 
index cacbdb3..637716f 100644 (file)
@@ -30,9 +30,9 @@ const volatile A cv_source();
 
 // 3 at a time
 
-one   sink_3_123(               A&);  // { dg-message "candidates" }
-two   sink_3_123(const          A&);  // { dg-message "note" }
-three sink_3_123(volatile       A&);  // { dg-message "note" }
+one   sink_3_123(               A&);  // { dg-message "one sink_3_123|no known conversion" }
+two   sink_3_123(const          A&);  // { dg-message "two sink_3_123|no known conversion" }
+three sink_3_123(volatile       A&);  // { dg-message "three sink_3_123|no known conversion" }
 
 int test3_123()
 {
@@ -41,18 +41,21 @@ int test3_123()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_123(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 43 }
     sink_3_123(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 45 }
     sink_3_123(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
     return 0;
 }
 
-one   sink_3_125(               A&);  // { dg-message "candidates" }
-two   sink_3_125(const          A&);  // { dg-message "note" }
-five  sink_3_125(               A&&);  // { dg-message "note" }
+one   sink_3_125(               A&);  // { dg-message "one sink_3_125|no known conversion" }
+two   sink_3_125(const          A&);  // { dg-message "two sink_3_125|no known conversion" }
+five  sink_3_125(               A&&);  // { dg-message "five sink_3_125|no known conversion" }
 
-one   sink_3_124(               A&);  // { dg-message "candidates" }
-two   sink_3_124(const          A&);  // { dg-message "note" }
-four  sink_3_124(const volatile A&);  // { dg-message "note" }
+one   sink_3_124(               A&);  // { dg-message "one sink_3_124|no known conversion" }
+two   sink_3_124(const          A&);  // { dg-message "two sink_3_124|no known conversion" }
+four  sink_3_124(const volatile A&);  // { dg-message "four sink_3_124|no known conversion" }
 
 int test3_124()
 {
@@ -61,7 +64,9 @@ int test3_124()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_124(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
     sink_3_124(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 68 }
     return 0;
 }
 
@@ -72,15 +77,19 @@ int test3_125()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_125(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 79 }
     sink_3_125(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 81 }
     sink_3_125(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 83 }
     sink_3_125(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 85 }
     return 0;
 }
 
-one   sink_3_126(               A&);  // { dg-message "candidates" }
-two   sink_3_126(const          A&);  // { dg-message "note" }
-six   sink_3_126(const          A&&);  // { dg-message "note" }
+one   sink_3_126(               A&);  // { dg-message "one sink_3_126|no known conversion" }
+two   sink_3_126(const          A&);  // { dg-message "two sink_3_126|no known conversion" }
+six   sink_3_126(const          A&&);  // { dg-message "six sink_3_126|no known conversion" }
 
 int test3_126()
 {
@@ -89,15 +98,19 @@ int test3_126()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_126(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 100 }
     sink_3_126(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 102 }
     sink_3_126(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 104 }
     sink_3_126(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 106 }
     return 0;
 }
 
-one   sink_3_127(               A&);  // { dg-message "candidates" }
-two   sink_3_127(const          A&);  // { dg-message "note" }
-seven sink_3_127(volatile       A&&);  // { dg-message "" }
+one   sink_3_127(               A&);  // { dg-message "one sink_3_127|no known conversion" }
+two   sink_3_127(const          A&);  // { dg-message "two sink_3_127|no known conversion" }
+seven sink_3_127(volatile       A&&);  // { dg-message "seven sink_3_127|no known conversion" }
 
 int test3_127()
 {
@@ -107,7 +120,9 @@ int test3_127()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_127(va);            // { dg-error "lvalue" }
     sink_3_127(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 122 }
     sink_3_127(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 124 }
     return 0;
 }
 
@@ -126,9 +141,9 @@ int test3_128()
     sink_3_128(cva);           // { dg-error "lvalue" }
 }
 
-one   sink_3_134(               A&);  // { dg-message "candidates" }
-three sink_3_134(volatile       A&);  // { dg-message "note" }
-four  sink_3_134(const volatile A&);  // { dg-message "note" }
+one   sink_3_134(               A&);  // { dg-message "one sink_3_134|no known conversion" }
+three sink_3_134(volatile       A&);  // { dg-message "three sink_3_134|no known conversion" }
+four  sink_3_134(const volatile A&);  // { dg-message "four sink_3_134|no known conversion" }
 
 int test3_134()
 {
@@ -137,15 +152,19 @@ int test3_134()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_134(source());     // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 154 }
     sink_3_134(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 156 }
     sink_3_134(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 158 }
     sink_3_134(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 160 }
     return 0;
 }
 
-one   sink_3_135(               A&);  // { dg-message "candidates" }
-three sink_3_135(volatile       A&);  // { dg-message "note" }
-five  sink_3_135(               A&&);  // { dg-message "note" }
+one   sink_3_135(               A&);  // { dg-message "one sink_3_135|no known conversion" }
+three sink_3_135(volatile       A&);  // { dg-message "three sink_3_135|no known conversion" }
+five  sink_3_135(               A&&);  // { dg-message "five sink_3_135|no known conversion" }
 
 int test3_135()
 {
@@ -154,14 +173,19 @@ int test3_135()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_135(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 175 }
     sink_3_135(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 177 }
     sink_3_135(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 179 }
     sink_3_135(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 181 }
     sink_3_135(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 183 }
     return 0;
 }
 
-one   sink_3_136(               A&);  // { dg-message "candidates" }
+one   sink_3_136(               A&);  // { dg-message "one sink_3_136|no known conversion" }
 three sink_3_136(volatile       A&);  // { dg-message "note" }
 six   sink_3_136(const          A&&);  // { dg-message "" }
 
@@ -173,12 +197,15 @@ int test3_136()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_136(ca);            // { dg-error "lvalue" }
     sink_3_136(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 199 }
     sink_3_136(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 201 }
     sink_3_136(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 203 }
     return 0;
 }
 
-one   sink_3_137(               A&);  // { dg-message "candidates" }
+one   sink_3_137(               A&);  // { dg-message "one sink_3_137|no known conversion" }
 three sink_3_137(volatile       A&);  // { dg-message "note" }
 seven sink_3_137(volatile       A&&);  // { dg-message "note" }
 
@@ -189,9 +216,13 @@ int test3_137()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_137(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 218 }
     sink_3_137(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 220 }
     sink_3_137(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 222 }
     sink_3_137(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 224 }
     return 0;
 }
 
@@ -210,7 +241,7 @@ int test3_138()
     return 0;
 }
 
-one   sink_3_145(               A&);  // { dg-message "candidates" }
+one   sink_3_145(               A&);  // { dg-message "one sink_3_145|no known conversion" }
 four  sink_3_145(const volatile A&);  // { dg-message "note" }
 five  sink_3_145(               A&&);  // { dg-message "note" }
 
@@ -221,12 +252,15 @@ int test3_145()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_145(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 254 }
     sink_3_145(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 256 }
     sink_3_145(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 258 }
     return 0;
 }
 
-one   sink_3_146(               A&);  // { dg-message "candidates" }
+one   sink_3_146(               A&);  // { dg-message "one sink_3_146|no known conversion" }
 four  sink_3_146(const volatile A&);  // { dg-message "note" }
 six   sink_3_146(const          A&&);  // { dg-message "note" }
 
@@ -237,11 +271,13 @@ int test3_146()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_146(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 273 }
     sink_3_146(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 275 }
     return 0;
 }
 
-one   sink_3_147(               A&);  // { dg-message "candidates" }
+one   sink_3_147(               A&);  // { dg-message "one sink_3_147|no known conversion" }
 four  sink_3_147(const volatile A&);  // { dg-message "note" }
 seven sink_3_147(volatile       A&&);  // { dg-message "note" }
 
@@ -252,11 +288,13 @@ int test3_147()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_147(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 290 }
     sink_3_147(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 292 }
     return 0;
 }
 
-one   sink_3_156(               A&);  // { dg-message "candidates" }
+one   sink_3_156(               A&);  // { dg-message "one sink_3_156|no known conversion" }
 five  sink_3_156(               A&&);  // { dg-message "note" }
 six   sink_3_156(const          A&&);  // { dg-message "" }
 
@@ -268,13 +306,17 @@ int test3_156()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_156(ca);            // { dg-error "lvalue" }
     sink_3_156(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 308 }
     sink_3_156(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 310 }
     sink_3_156(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 312 }
     sink_3_156(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 314 }
     return 0;
 }
 
-one   sink_3_157(               A&);  // { dg-message "candidates" }
+one   sink_3_157(               A&);  // { dg-message "one sink_3_157|no known conversion" }
 five  sink_3_157(               A&&);  // { dg-message "note" }
 seven sink_3_157(volatile       A&&);  // { dg-message "" }
 
@@ -285,10 +327,14 @@ int test3_157()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_157(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 329 }
     sink_3_157(va);          // { dg-error "lvalue" }
     sink_3_157(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 332 }
     sink_3_157(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 334 }
     sink_3_157(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 336 }
     return 0;
 }
 
@@ -308,7 +354,7 @@ int test3_158()
     return 0;
 }
 
-one   sink_3_167(               A&);  // { dg-message "candidates" }
+one   sink_3_167(               A&);  // { dg-message "one sink_3_167|no known conversion" }
 six   sink_3_167(const          A&&);  // { dg-message "" }
 seven sink_3_167(volatile       A&&);  // { dg-message "" }
 
@@ -321,8 +367,11 @@ int test3_167()
     sink_3_167(ca);            // { dg-error "lvalue" }
     sink_3_167(va);            // { dg-error "lvalue" }
     sink_3_167(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 369 }
     sink_3_167(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 371 }
     sink_3_167(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 373 }
     return 0;
 }
 
@@ -358,7 +407,7 @@ int test3_178()
     return 0;
 }
 
-two   sink_3_234(const          A&);  // { dg-message "candidates" }
+two   sink_3_234(const          A&);  // { dg-message "two sink_3_234|no known conversion" }
 three sink_3_234(volatile       A&);  // { dg-message "note" }
 four  sink_3_234(const volatile A&);  // { dg-message "note" }
 
@@ -369,12 +418,15 @@ int test3_234()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_234(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 420 }
     sink_3_234(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 422 }
     sink_3_234(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 424 }
     return 0;
 }
 
-two   sink_3_235(const          A&);  // { dg-message "candidates" }
+two   sink_3_235(const          A&);  // { dg-message "two sink_3_235|no known conversion" }
 three sink_3_235(volatile       A&);  // { dg-message "note" }
 five  sink_3_235(               A&&);  // { dg-message "note" }
 
@@ -385,13 +437,17 @@ int test3_235()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_235(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 439 }
     sink_3_235(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 441 }
     sink_3_235(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 443 }
     sink_3_235(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 445 }
     return 0;
 }
 
-two   sink_3_236(const          A&);  // { dg-message "candidates" }
+two   sink_3_236(const          A&);  // { dg-message "two sink_3_236|no known conversion" }
 three sink_3_236(volatile       A&);  // { dg-message "note" }
 six   sink_3_236(const          A&&);  // { dg-message "note" }
 
@@ -402,13 +458,17 @@ int test3_236()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_236(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 460 }
     sink_3_236(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 462 }
     sink_3_236(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 464 }
     sink_3_236(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 466 }
     return 0;
 }
 
-two   sink_3_237(const          A&);  // { dg-message "candidates" }
+two   sink_3_237(const          A&);  // { dg-message "two sink_3_237|no known conversion" }
 three sink_3_237(volatile       A&);  // { dg-message "note" }
 seven sink_3_237(volatile       A&&);  // { dg-message "note" }
 
@@ -419,14 +479,17 @@ int test3_237()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_237(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 481 }
     sink_3_237(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 483 }
     sink_3_237(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 485 }
     return 0;
 }
 
-two   sink_3_238(const          A&);  // { dg-message "candidates" }
-three sink_3_238(volatile       A&);  // { dg-message "note" }
-eight sink_3_238(const volatile A&&);  // { dg-message "" }
+two   sink_3_238(const          A&);  // { dg-message "two sink_3_238|no known conversion" }
+three sink_3_238(volatile       A&);  // { dg-message "three sink_3_238|no known conversion" }
+eight sink_3_238(const volatile A&&);  // { dg-message "eight sink_3_238|no known conversion" }
 
 int test3_238()
 {
@@ -435,13 +498,14 @@ int test3_238()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_238(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 500 }
     sink_3_238(cva); // { dg-error "lvalue" }
     return 0;
 }
 
-two   sink_3_245(const          A&);  // { dg-message "candidates" }
-four  sink_3_245(const volatile A&);  // { dg-message "note" }
-five  sink_3_245(               A&&);  // { dg-message "note" }
+two   sink_3_245(const          A&);  // { dg-message "two sink_3_245|no known conversion" }
+four  sink_3_245(const volatile A&);  // { dg-message "four sink_3_245|no known conversion" }
+five  sink_3_245(               A&&);  // { dg-message "five sink_3_245|no known conversion" }
 
 int test3_245()
 {
@@ -450,13 +514,15 @@ int test3_245()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_245(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 516 }
     sink_3_245(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 518 }
     return 0;
 }
 
-two   sink_3_246(const          A&);  // { dg-message "candidates" }
-four  sink_3_246(const volatile A&);  // { dg-message "note" }
-six   sink_3_246(const          A&&);  // { dg-message "note" }
+two   sink_3_246(const          A&);  // { dg-message "two sink_3_246|no known conversion" }
+four  sink_3_246(const volatile A&);  // { dg-message "four sink_3_246|no known conversion" }
+six   sink_3_246(const          A&&);  // { dg-message "six sink_3_246|no known conversion" }
 
 int test3_246()
 {
@@ -465,13 +531,15 @@ int test3_246()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_246(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 533 }
     sink_3_246(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 535 }
     return 0;
 }
 
-two   sink_3_247(const          A&);  // { dg-message "candidates" }
-four  sink_3_247(const volatile A&);  // { dg-message "note" }
-seven sink_3_247(volatile       A&&);  // { dg-message "note" }
+two   sink_3_247(const          A&);  // { dg-message "two sink_3_247|no known conversion" }
+four  sink_3_247(const volatile A&);  // { dg-message "four sink_3_247|no known conversion" }
+seven sink_3_247(volatile       A&&);  // { dg-message "seven sink_3_247|no known conversion" }
 
 int test3_247()
 {
@@ -480,12 +548,13 @@ int test3_247()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_247(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 550 }
     return 0;
 }
 
-two   sink_3_256(const          A&);  // { dg-message "candidates" }
-five  sink_3_256(               A&&);  // { dg-message "note" }
-six   sink_3_256(const          A&&);  // { dg-message "note" }
+two   sink_3_256(const          A&);  // { dg-message "two sink_3_256|no known conversion" }
+five  sink_3_256(               A&&);  // { dg-message "five sink_3_256|no known conversion" }
+six   sink_3_256(const          A&&);  // { dg-message "six sink_3_256|no known conversion" }
 
 int test3_256()
 {
@@ -494,15 +563,19 @@ int test3_256()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_256(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 565 }
     sink_3_256(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 567 }
     sink_3_256(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 569 }
     sink_3_256(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 571 }
     return 0;
 }
 
-two   sink_3_257(const          A&);  // { dg-message "candidates" }
-five  sink_3_257(               A&&);  // { dg-message "note" }
-seven sink_3_257(volatile       A&&);  // { dg-message "" }
+two   sink_3_257(const          A&);  // { dg-message "two sink_3_257|no known conversion" }
+five  sink_3_257(               A&&);  // { dg-message "five sink_3_257|no known conversion" }
+seven sink_3_257(volatile       A&&);  // { dg-message "seven sink_3_257|no known conversion" }
 
 int test3_257()
 {
@@ -512,7 +585,9 @@ int test3_257()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_257(va);            // { dg-error "lvalue" }
     sink_3_257(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 587 }
     sink_3_257(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 589 }
     return 0;
 }
 
@@ -531,9 +606,9 @@ int test3_258()
     return 0;
 }
 
-two   sink_3_267(const          A&);  // { dg-message "candidates" }
-six   sink_3_267(const          A&&);  // { dg-message "note" }
-seven sink_3_267(volatile       A&&);  // { dg-message "" }
+two   sink_3_267(const          A&);  // { dg-message "two sink_3_267|no known conversion" }
+six   sink_3_267(const          A&&);  // { dg-message "six sink_3_267|no known conversion" }
+seven sink_3_267(volatile       A&&);  // { dg-message "seven sink_3_267|no known conversion" }
 
 int test3_267()
 {
@@ -543,8 +618,11 @@ int test3_267()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_267(va);            // { dg-error "lvalue" }
     sink_3_267(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 620 }
     sink_3_267(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 622 }
     sink_3_267(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 624 }
     return 0;
 }
 
@@ -578,9 +656,9 @@ int test3_278()
     return 0;
 }
 
-three sink_3_345(volatile       A&);  // { dg-message "candidates" }
-four  sink_3_345(const volatile A&);  // { dg-message "note" }
-five  sink_3_345(               A&&);  // { dg-message "note" }
+three sink_3_345(volatile       A&);  // { dg-message "three sink_3_345|no known conversion" }
+four  sink_3_345(const volatile A&);  // { dg-message "four sink_3_345|no known conversion" }
+five  sink_3_345(               A&&);  // { dg-message "five sink_3_345|no known conversion" }
 
 int test3_345()
 {
@@ -589,14 +667,17 @@ int test3_345()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_345(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 669 }
     sink_3_345(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 671 }
     sink_3_345(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 673 }
     return 0;
 }
 
-three sink_3_346(volatile       A&);  // { dg-message "candidates" }
-four  sink_3_346(const volatile A&);  // { dg-message "note" }
-six   sink_3_346(const          A&&);  // { dg-message "note" }
+three sink_3_346(volatile       A&);  // { dg-message "three sink_3_346|no known conversion" }
+four  sink_3_346(const volatile A&);  // { dg-message "four sink_3_346|no known conversion" }
+six   sink_3_346(const          A&&);  // { dg-message "six sink_3_346|no known conversion" }
 
 int test3_346()
 {
@@ -605,13 +686,15 @@ int test3_346()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_346(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 688 }
     sink_3_346(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 690 }
     return 0;
 }
 
-three sink_3_347(volatile       A&);  // { dg-message "candidates" }
-four  sink_3_347(const volatile A&);  // { dg-message "note" }
-seven sink_3_347(volatile       A&&);  // { dg-message "note" }
+three sink_3_347(volatile       A&);  // { dg-message "three sink_3_347|no known conversion" }
+four  sink_3_347(const volatile A&);  // { dg-message "four sink_3_347|no known conversion" }
+seven sink_3_347(volatile       A&&);  // { dg-message "seven sink_3_347|no known conversion" }
 
 int test3_347()
 {
@@ -620,13 +703,15 @@ int test3_347()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_347(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 705 }
     sink_3_347(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 707 }
     return 0;
 }
 
-three sink_3_356(volatile       A&);  // { dg-message "candidates" }
-five  sink_3_356(               A&&);  // { dg-message "note" }
-six   sink_3_356(const          A&&);  // { dg-message "" }
+three sink_3_356(volatile       A&);  // { dg-message "three sink_3_356|no known conversion" }
+five  sink_3_356(               A&&);  // { dg-message "five sink_3_356|no known conversion" }
+six   sink_3_356(const          A&&);  // { dg-message "six sink_3_356|no known conversion" }
 
 int test3_356()
 {
@@ -636,14 +721,17 @@ int test3_356()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_356(ca);            // { dg-error "lvalue" }
     sink_3_356(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 723 }
     sink_3_356(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 725 }
     sink_3_356(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 727 }
     return 0;
 }
 
-three sink_3_357(volatile       A&);  // { dg-message "candidates" }
-five  sink_3_357(               A&&);  // { dg-message "note" }
-seven sink_3_357(volatile       A&&);  // { dg-message "note" }
+three sink_3_357(volatile       A&);  // { dg-message "three sink_3_357|no known conversion" }
+five  sink_3_357(               A&&);  // { dg-message "five sink_3_357|no known conversion" }
+seven sink_3_357(volatile       A&&);  // { dg-message "seven sink_3_357|no known conversion" }
 
 int test3_357()
 {
@@ -652,9 +740,13 @@ int test3_357()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_357(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 742 }
     sink_3_357(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 744 }
     sink_3_357(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 746 }
     sink_3_357(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 748 }
     return 0;
 }
 
@@ -673,9 +765,9 @@ int test3_358()
     return 0;
 }
 
-three sink_3_367(volatile       A&);  // { dg-message "candidates" }
-six   sink_3_367(const          A&&);  // { dg-message "" }
-seven sink_3_367(volatile       A&&);  // { dg-message "note" }
+three sink_3_367(volatile       A&);  // { dg-message "three sink_3_367|no known conversion" }
+six   sink_3_367(const          A&&);  // { dg-message "six sink_3_367|no known conversion" }
+seven sink_3_367(volatile       A&&);  // { dg-message "seven sink_3_367|no known conversion" }
 
 int test3_367()
 {
@@ -685,8 +777,11 @@ int test3_367()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_367(ca);            // { dg-error "lvalue" }
     sink_3_367(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 779 }
     sink_3_367(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 781 }
     sink_3_367(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 783 }
     return 0;
 }
 
@@ -720,7 +815,7 @@ int test3_378()
     return 0;
 }
 
-four  sink_3_456(const volatile A&);  // { dg-message "candidates" }
+four  sink_3_456(const volatile A&);  // { dg-message "note" }
 five  sink_3_456(               A&&);  // { dg-message "note" }
 six   sink_3_456(const          A&&);  // { dg-message "note" }
 
@@ -731,11 +826,13 @@ int test3_456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 828 }
     sink_3_456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 830 }
     return 0;
 }
 
-four  sink_3_457(const volatile A&);  // { dg-message "candidates" }
+four  sink_3_457(const volatile A&);  // { dg-message "note" }
 five  sink_3_457(               A&&);  // { dg-message "note" }
 seven sink_3_457(volatile       A&&);  // { dg-message "note" }
 
@@ -746,11 +843,13 @@ int test3_457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_457(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 845 }
     sink_3_457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 847 }
     return 0;
 }
 
-four  sink_3_467(const volatile A&);  // { dg-message "candidates" }
+four  sink_3_467(const volatile A&);  // { dg-message "note" }
 six   sink_3_467(const          A&&);  // { dg-message "note" }
 seven sink_3_467(volatile       A&&);  // { dg-message "note" }
 
@@ -761,13 +860,15 @@ int test3_467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 862 }
     sink_3_467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 864 }
     return 0;
 }
 
-five  sink_3_567(               A&&);  // { dg-message "" }
-six   sink_3_567(const          A&&);  // { dg-message "" }
-seven sink_3_567(volatile       A&&);  // { dg-message "" }
+five  sink_3_567(               A&&);  // { dg-message "five sink_3_567|no known conversion" }
+six   sink_3_567(const          A&&);  // { dg-message "six sink_3_567|no known conversion" }
+seven sink_3_567(volatile       A&&);  // { dg-message "seven sink_3_567|no known conversion" }
 
 int test3_567()
 {
@@ -779,7 +880,9 @@ int test3_567()
     sink_3_567(ca);            // { dg-error "lvalue" }
     sink_3_567(va);            // { dg-error "lvalue" }
     sink_3_567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 882 }
     sink_3_567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 884 }
     return 0;
 }
 
@@ -817,9 +920,9 @@ int test3_578()
     return 0;
 }
 
-six   sink_3_678(const          A&&);  // { dg-message "" }
-seven sink_3_678(volatile       A&&);  // { dg-message "" }
-eight sink_3_678(const volatile A&&);  // { dg-message "" }
+six   sink_3_678(const          A&&);  // { dg-message "six sink_3_678|no known conversion" }
+seven sink_3_678(volatile       A&&);  // { dg-message "seven sink_3_678|no known conversion" }
+eight sink_3_678(const volatile A&&);  // { dg-message "eight sink_3_678|no known conversion" }
 
 int test3_678()
 {
@@ -828,10 +931,12 @@ int test3_678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_3_678(a);          // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 933 }
     sink_3_678(ca);        // { dg-error "lvalue" }
     sink_3_678(va);        // { dg-error "lvalue" }
     sink_3_678(cva);       // { dg-error "lvalue" }
     sink_3_678(source());   // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 938 }
     return 0;
 }
 
index 524885f..daff307 100644 (file)
@@ -30,7 +30,7 @@ const volatile A cv_source();
 
 // 4 at a time
 
-one   sink_4_1234(               A&);  // { dg-message "candidates" }
+one   sink_4_1234(               A&);  // { dg-message "one sink_4_1234|no known conversion" }
 two   sink_4_1234(const          A&);  // { dg-message "note" }
 three sink_4_1234(volatile       A&);  // { dg-message "note" }
 four  sink_4_1234(const volatile A&);  // { dg-message "note" }
@@ -42,11 +42,13 @@ int test4_1234()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1234(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 44 }
     sink_4_1234(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 46 }
     return 0;
 }
 
-one   sink_4_1235(               A&);  // { dg-message "candidates" }
+one   sink_4_1235(               A&);  // { dg-message "one sink_4_1235|no known conversion" }
 two   sink_4_1235(const          A&);  // { dg-message "note" }
 three sink_4_1235(volatile       A&);  // { dg-message "note" }
 five  sink_4_1235(               A&&);  // { dg-message "note" }
@@ -58,12 +60,15 @@ int test4_1235()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1235(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 62 }
     sink_4_1235(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 64 }
     sink_4_1235(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
     return 0;
 }
 
-one   sink_4_1236(               A&);  // { dg-message "candidates" }
+one   sink_4_1236(               A&);  // { dg-message "one sink_4_1236|no known conversion" }
 two   sink_4_1236(const          A&);  // { dg-message "note" }
 three sink_4_1236(volatile       A&);  // { dg-message "note" }
 six   sink_4_1236(const          A&&);  // { dg-message "note" }
@@ -75,12 +80,15 @@ int test4_1236()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1236(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 82 }
     sink_4_1236(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 84 }
     sink_4_1236(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 86 }
     return 0;
 }
 
-one   sink_4_1237(               A&);  // { dg-message "candidates" }
+one   sink_4_1237(               A&);  // { dg-message "one sink_4_1237|no known conversion" }
 two   sink_4_1237(const          A&);  // { dg-message "note" }
 three sink_4_1237(volatile       A&);  // { dg-message "note" }
 seven sink_4_1237(volatile       A&&);  // { dg-message "note" }
@@ -92,7 +100,9 @@ int test4_1237()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1237(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 102 }
     sink_4_1237(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 104 }
     return 0;
 }
 
@@ -111,7 +121,7 @@ int test4_1238()
     return 0;
 }
 
-one   sink_4_1245(               A&);  // { dg-message "candidates" }
+one   sink_4_1245(               A&);  // { dg-message "one sink_4_1245|no known conversion" }
 two   sink_4_1245(const          A&);  // { dg-message "note" }
 four  sink_4_1245(const volatile A&);  // { dg-message "note" }
 five  sink_4_1245(               A&&);  // { dg-message "note" }
@@ -123,11 +133,13 @@ int test4_1245()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1245(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 135 }
     sink_4_1245(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 137 }
     return 0;
 }
 
-one   sink_4_1246(               A&);  // { dg-message "candidates" }
+one   sink_4_1246(               A&);  // { dg-message "one sink_4_1246|no known conversion" }
 two   sink_4_1246(const          A&);  // { dg-message "note" }
 four  sink_4_1246(const volatile A&);  // { dg-message "note" }
 six   sink_4_1246(const          A&&);  // { dg-message "note" }
@@ -139,11 +151,13 @@ int test4_1246()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1246(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 153 }
     sink_4_1246(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 155 }
     return 0;
 }
 
-one   sink_4_1247(               A&);  // { dg-message "candidates" }
+one   sink_4_1247(               A&);  // { dg-message "one sink_4_1247|no known conversion" }
 two   sink_4_1247(const          A&);  // { dg-message "note" }
 four  sink_4_1247(const volatile A&);  // { dg-message "note" }
 seven sink_4_1247(volatile       A&&);  // { dg-message "note" }
@@ -155,10 +169,11 @@ int test4_1247()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1247(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 171 }
     return 0;
 }
 
-one   sink_4_1256(               A&);  // { dg-message "candidates" }
+one   sink_4_1256(               A&);  // { dg-message "one sink_4_1256|no known conversion" }
 two   sink_4_1256(const          A&);  // { dg-message "note" }
 five  sink_4_1256(               A&&);  // { dg-message "note" }
 six   sink_4_1256(const          A&&);  // { dg-message "note" }
@@ -170,13 +185,17 @@ int test4_1256()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1256(va);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 187 }
     sink_4_1256(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 189 }
     sink_4_1256(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 191 }
     sink_4_1256(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 193 }
     return 0;
 }
 
-one   sink_4_1257(               A&);  // { dg-message "candidates" }
+one   sink_4_1257(               A&);  // { dg-message "one sink_4_1257|no known conversion" }
 two   sink_4_1257(const          A&);  // { dg-message "note" }
 five  sink_4_1257(               A&&);  // { dg-message "note" }
 seven sink_4_1257(volatile       A&&);  // { dg-message "" }
@@ -189,7 +208,9 @@ int test4_1257()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1257(va);           // { dg-error "lvalue" }
     sink_4_1257(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 210 }
     sink_4_1257(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 212 }
     return 0;
 }
 
@@ -209,7 +230,7 @@ int test4_1258()
     return 0;
 }
 
-one   sink_4_1267(               A&);  // { dg-message "candidates" }
+one   sink_4_1267(               A&);  // { dg-message "one sink_4_1267|no known conversion" }
 two   sink_4_1267(const          A&);  // { dg-message "note" }
 six   sink_4_1267(const          A&&);  // { dg-message "note" }
 seven sink_4_1267(volatile       A&&);  // { dg-message "" }
@@ -222,8 +243,11 @@ int test4_1267()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1267(va);           // { dg-error "lvalue" }
     sink_4_1267(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 245 }
     sink_4_1267(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 247 }
     sink_4_1267(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 249 }
     return 0;
 }
 
@@ -259,7 +283,7 @@ int test4_1278()
     return 0;
 }
 
-one   sink_4_1345(               A&);  // { dg-message "candidates" }
+one   sink_4_1345(               A&);  // { dg-message "one sink_4_1345|no known conversion" }
 three sink_4_1345(volatile       A&);  // { dg-message "note" }
 four  sink_4_1345(const volatile A&);  // { dg-message "note" }
 five  sink_4_1345(               A&&);  // { dg-message "note" }
@@ -271,12 +295,15 @@ int test4_1345()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1345(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 297 }
     sink_4_1345(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 299 }
     sink_4_1345(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 301 }
     return 0;
 }
 
-one   sink_4_1346(               A&);  // { dg-message "candidates" }
+one   sink_4_1346(               A&);  // { dg-message "one sink_4_1346|no known conversion" }
 three sink_4_1346(volatile       A&);  // { dg-message "note" }
 four  sink_4_1346(const volatile A&);  // { dg-message "note" }
 six   sink_4_1346(const          A&&);  // { dg-message "note" }
@@ -288,11 +315,13 @@ int test4_1346()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1346(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 317 }
     sink_4_1346(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 319 }
     return 0;
 }
 
-one   sink_4_1347(               A&);  // { dg-message "candidates" }
+one   sink_4_1347(               A&);  // { dg-message "one sink_4_1347|no known conversion" }
 three sink_4_1347(volatile       A&);  // { dg-message "note" }
 four  sink_4_1347(const volatile A&);  // { dg-message "note" }
 seven sink_4_1347(volatile       A&&);  // { dg-message "note" }
@@ -304,11 +333,13 @@ int test4_1347()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1347(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 335 }
     sink_4_1347(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 337 }
     return 0;
 }
 
-one   sink_4_1356(               A&);  // { dg-message "candidates" }
+one   sink_4_1356(               A&);  // { dg-message "one sink_4_1356|no known conversion" }
 three sink_4_1356(volatile       A&);  // { dg-message "note" }
 five  sink_4_1356(               A&&);  // { dg-message "note" }
 six   sink_4_1356(const          A&&);  // { dg-message "" }
@@ -321,12 +352,15 @@ int test4_1356()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1356(ca);           // { dg-error "lvalue" }
     sink_4_1356(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 354 }
     sink_4_1356(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 356 }
     sink_4_1356(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 358 }
     return 0;
 }
 
-one   sink_4_1357(               A&);  // { dg-message "candidates" }
+one   sink_4_1357(               A&);  // { dg-message "one sink_4_1357|no known conversion" }
 three sink_4_1357(volatile       A&);  // { dg-message "note" }
 five  sink_4_1357(               A&&);  // { dg-message "note" }
 seven sink_4_1357(volatile       A&&);  // { dg-message "note" }
@@ -338,9 +372,13 @@ int test4_1357()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1357(ca);           // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 374 }
     sink_4_1357(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 376 }
     sink_4_1357(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 378 }
     sink_4_1357(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 380 }
     return 0;
 }
 
@@ -360,7 +398,7 @@ int test4_1358()
     return 0;
 }
 
-one   sink_4_1367(               A&);  // { dg-message "candidates" }
+one   sink_4_1367(               A&);  // { dg-message "one sink_4_1367|no known conversion" }
 three sink_4_1367(volatile       A&);  // { dg-message "note" }
 six   sink_4_1367(const          A&&);  // { dg-message "" }
 seven sink_4_1367(volatile       A&&);  // { dg-message "note" }
@@ -373,8 +411,11 @@ int test4_1367()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1367(ca);           // { dg-error "lvalue" }
     sink_4_1367(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 413 }
     sink_4_1367(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 415 }
     sink_4_1367(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 417 }
     return 0;
 }
 
@@ -410,7 +451,7 @@ int test4_1378()
     return 0;
 }
 
-one   sink_4_1456(               A&);  // { dg-message "candidates" }
+one   sink_4_1456(               A&);  // { dg-message "one sink_4_1456|no known conversion" }
 four  sink_4_1456(const volatile A&);  // { dg-message "note" }
 five  sink_4_1456(               A&&);  // { dg-message "note" }
 six   sink_4_1456(const          A&&);  // { dg-message "note" }
@@ -422,11 +463,13 @@ int test4_1456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 465 }
     sink_4_1456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 467 }
     return 0;
 }
 
-one   sink_4_1457(               A&);  // { dg-message "candidates" }
+one   sink_4_1457(               A&);  // { dg-message "one sink_4_1457|no known conversion" }
 four  sink_4_1457(const volatile A&);  // { dg-message "note" }
 five  sink_4_1457(               A&&);  // { dg-message "note" }
 seven sink_4_1457(volatile       A&&);  // { dg-message "note" }
@@ -438,11 +481,13 @@ int test4_1457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1457(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 483 }
     sink_4_1457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 485 }
     return 0;
 }
 
-one   sink_4_1467(               A&);  // { dg-message "candidates" }
+one   sink_4_1467(               A&);  // { dg-message "one sink_4_1467|no known conversion" }
 four  sink_4_1467(const volatile A&);  // { dg-message "note" }
 six   sink_4_1467(const          A&&);  // { dg-message "note" }
 seven sink_4_1467(volatile       A&&);  // { dg-message "note" }
@@ -454,11 +499,13 @@ int test4_1467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_1467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 501 }
     sink_4_1467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 503 }
     return 0;
 }
 
-one   sink_4_1567(               A&);  // { dg-message "candidates" }
+one   sink_4_1567(               A&);  // { dg-message "one sink_4_1567|no known conversion" }
 five  sink_4_1567(               A&&);  // { dg-message "note" }
 six   sink_4_1567(const          A&&);  // { dg-message "" }
 seven sink_4_1567(volatile       A&&);  // { dg-message "" }
@@ -472,7 +519,9 @@ int test4_1567()
     sink_4_1567(ca);          // { dg-error "lvalue" }
     sink_4_1567(va);          // { dg-error "lvalue" }
     sink_4_1567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 521 }
     sink_4_1567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 523 }
     return 0;
 }
 
@@ -525,10 +574,11 @@ int test4_1678()
     sink_4_1678(va);           // { dg-error "lvalue" }
     sink_4_1678(cva);          // { dg-error "lvalue" }
     sink_4_1678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 576 }
     return 0;
 }
 
-two   sink_4_2345(const          A&);  // { dg-message "candidates" }
+two   sink_4_2345(const          A&);  // { dg-message "two sink_4_2345|no known conversion" }
 three sink_4_2345(volatile       A&);  // { dg-message "note" }
 four  sink_4_2345(const volatile A&);  // { dg-message "note" }
 five  sink_4_2345(               A&&);  // { dg-message "note" }
@@ -540,12 +590,15 @@ int test4_2345()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2345(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 592 }
     sink_4_2345(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 594 }
     sink_4_2345(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 596 }
     return 0;
 }
 
-two   sink_4_2346(const          A&);  // { dg-message "candidates" }
+two   sink_4_2346(const          A&);  // { dg-message "two sink_4_2346|no known conversion" }
 three sink_4_2346(volatile       A&);  // { dg-message "note" }
 four  sink_4_2346(const volatile A&);  // { dg-message "note" }
 six   sink_4_2346(const          A&&);  // { dg-message "note" }
@@ -557,12 +610,15 @@ int test4_2346()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2346(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 612 }
     sink_4_2346(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 614 }
     sink_4_2346(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 616 }
     return 0;
 }
 
-two   sink_4_2347(const          A&);  // { dg-message "candidates" }
+two   sink_4_2347(const          A&);  // { dg-message "two sink_4_2347|no known conversion" }
 three sink_4_2347(volatile       A&);  // { dg-message "note" }
 four  sink_4_2347(const volatile A&);  // { dg-message "note" }
 seven sink_4_2347(volatile       A&&);  // { dg-message "note" }
@@ -574,11 +630,13 @@ int test4_2347()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2347(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 632 }
     sink_4_2347(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 634 }
     return 0;
 }
 
-two   sink_4_2348(const          A&);  // { dg-message "candidates" }
+two   sink_4_2348(const          A&);  // { dg-message "note" }
 three sink_4_2348(volatile       A&);  // { dg-message "note" }
 four  sink_4_2348(const volatile A&);  // { dg-message "note" }
 eight sink_4_2348(const volatile A&&);  // { dg-message "note" }
@@ -590,10 +648,11 @@ int test4_2348()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2348(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 650 }
     return 0;
 }
 
-two   sink_4_2356(const          A&);  // { dg-message "candidates" }
+two   sink_4_2356(const          A&);  // { dg-message "two sink_4_2356|no known conversion" }
 three sink_4_2356(volatile       A&);  // { dg-message "note" }
 five  sink_4_2356(               A&&);  // { dg-message "note" }
 six   sink_4_2356(const          A&&);  // { dg-message "note" }
@@ -605,13 +664,17 @@ int test4_2356()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2356(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 666 }
     sink_4_2356(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 668 }
     sink_4_2356(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 670 }
     sink_4_2356(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 672 }
     return 0;
 }
 
-two   sink_4_2357(const          A&);  // { dg-message "candidates" }
+two   sink_4_2357(const          A&);  // { dg-message "two sink_4_2357|no known conversion" }
 three sink_4_2357(volatile       A&);  // { dg-message "note" }
 five  sink_4_2357(               A&&);  // { dg-message "note" }
 seven sink_4_2357(volatile       A&&);  // { dg-message "note" }
@@ -623,12 +686,15 @@ int test4_2357()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2357(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 688 }
     sink_4_2357(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 690 }
     sink_4_2357(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 692 }
     return 0;
 }
 
-two   sink_4_2358(const          A&);  // { dg-message "candidates" }
+two   sink_4_2358(const          A&);  // { dg-message "note" }
 three sink_4_2358(volatile       A&);  // { dg-message "note" }
 five  sink_4_2358(               A&&);  // { dg-message "note" }
 eight sink_4_2358(const volatile A&&);  // { dg-message "" }
@@ -640,11 +706,12 @@ int test4_2358()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2358(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 708 }
     sink_4_2358(cva); // { dg-error "lvalue" }
     return 0;
 }
 
-two   sink_4_2367(const          A&);  // { dg-message "candidates" }
+two   sink_4_2367(const          A&);  // { dg-message "two sink_4_2367|no known conversion" }
 three sink_4_2367(volatile       A&);  // { dg-message "note" }
 six   sink_4_2367(const          A&&);  // { dg-message "note" }
 seven sink_4_2367(volatile       A&&);  // { dg-message "note" }
@@ -656,13 +723,17 @@ int test4_2367()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2367(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 725 }
     sink_4_2367(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 727 }
     sink_4_2367(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 729 }
     sink_4_2367(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 731 }
     return 0;
 }
 
-two   sink_4_2368(const          A&);  // { dg-message "candidates" }
+two   sink_4_2368(const          A&);  // { dg-message "note" }
 three sink_4_2368(volatile       A&);  // { dg-message "note" }
 six   sink_4_2368(const          A&&);  // { dg-message "note" }
 eight sink_4_2368(const volatile A&&);  // { dg-message "" }
@@ -674,11 +745,12 @@ int test4_2368()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2368(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 747 }
     sink_4_2368(cva); // { dg-error "lvalue" }
     return 0;
 }
 
-two   sink_4_2378(const          A&);  // { dg-message "candidates" }
+two   sink_4_2378(const          A&);  // { dg-message "note" }
 three sink_4_2378(volatile       A&);  // { dg-message "note" }
 seven sink_4_2378(volatile       A&&);  // { dg-message "note" }
 eight sink_4_2378(const volatile A&&);  // { dg-message "" }
@@ -690,11 +762,12 @@ int test4_2378()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2378(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 764 }
     sink_4_2378(cva); // { dg-error "lvalue" }
     return 0;
 }
 
-two   sink_4_2456(const          A&);  // { dg-message "candidates" }
+two   sink_4_2456(const          A&);  // { dg-message "two sink_4_2456|no known conversion" }
 four  sink_4_2456(const volatile A&);  // { dg-message "note" }
 five  sink_4_2456(               A&&);  // { dg-message "note" }
 six   sink_4_2456(const          A&&);  // { dg-message "note" }
@@ -706,11 +779,13 @@ int test4_2456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 781 }
     sink_4_2456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 783 }
     return 0;
 }
 
-two   sink_4_2457(const          A&);  // { dg-message "candidates" }
+two   sink_4_2457(const          A&);  // { dg-message "two sink_4_2457|no known conversion" }
 four  sink_4_2457(const volatile A&);  // { dg-message "note" }
 five  sink_4_2457(               A&&);  // { dg-message "note" }
 seven sink_4_2457(volatile       A&&);  // { dg-message "note" }
@@ -722,10 +797,11 @@ int test4_2457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 799 }
     return 0;
 }
 
-two   sink_4_2467(const          A&);  // { dg-message "candidates" }
+two   sink_4_2467(const          A&);  // { dg-message "two sink_4_2467|no known conversion" }
 four  sink_4_2467(const volatile A&);  // { dg-message "note" }
 six   sink_4_2467(const          A&&);  // { dg-message "note" }
 seven sink_4_2467(volatile       A&&);  // { dg-message "note" }
@@ -737,11 +813,13 @@ int test4_2467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 815 }
     sink_4_2467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 817 }
     return 0;
 }
 
-two   sink_4_2567(const          A&);  // { dg-message "candidates" }
+two   sink_4_2567(const          A&);  // { dg-message "two sink_4_2567|no known conversion" }
 five  sink_4_2567(               A&&);  // { dg-message "note" }
 six   sink_4_2567(const          A&&);  // { dg-message "note" }
 seven sink_4_2567(volatile       A&&);  // { dg-message "" }
@@ -754,7 +832,9 @@ int test4_2567()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_2567(va);           // { dg-error "lvalue" }
     sink_4_2567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 834 }
     sink_4_2567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 836 }
     return 0;
 }
 
@@ -790,7 +870,7 @@ int test4_2578()
     return 0;
 }
 
-two   sink_4_2678(const          A&);  // { dg-message "candidates" }
+two   sink_4_2678(const          A&);  // { dg-message "note" }
 six   sink_4_2678(const          A&&);  // { dg-message "note" }
 seven sink_4_2678(volatile       A&&);  // { dg-message "" }
 eight sink_4_2678(const volatile A&&);  // { dg-message "" }
@@ -804,10 +884,11 @@ int test4_2678()
     sink_4_2678(va); // { dg-error "lvalue" }
     sink_4_2678(cva); // { dg-error "lvalue" }
     sink_4_2678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 886 }
     return 0;
 }
 
-three sink_4_3456(volatile       A&);  // { dg-message "candidates" }
+three sink_4_3456(volatile       A&);  // { dg-message "three sink_4_3456|no known conversion" }
 four  sink_4_3456(const volatile A&);  // { dg-message "note" }
 five  sink_4_3456(               A&&);  // { dg-message "note" }
 six   sink_4_3456(const          A&&);  // { dg-message "note" }
@@ -819,11 +900,13 @@ int test4_3456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_3456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 902 }
     sink_4_3456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 904 }
     return 0;
 }
 
-three sink_4_3457(volatile       A&);  // { dg-message "candidates" }
+three sink_4_3457(volatile       A&);  // { dg-message "three sink_4_3457|no known conversion" }
 four  sink_4_3457(const volatile A&);  // { dg-message "note" }
 five  sink_4_3457(               A&&);  // { dg-message "note" }
 seven sink_4_3457(volatile       A&&);  // { dg-message "note" }
@@ -835,11 +918,13 @@ int test4_3457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_3457(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 920 }
     sink_4_3457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 922 }
     return 0;
 }
 
-three sink_4_3467(volatile       A&);  // { dg-message "candidates" }
+three sink_4_3467(volatile       A&);  // { dg-message "three sink_4_3467|no known conversion" }
 four  sink_4_3467(const volatile A&);  // { dg-message "note" }
 six   sink_4_3467(const          A&&);  // { dg-message "note" }
 seven sink_4_3467(volatile       A&&);  // { dg-message "note" }
@@ -851,11 +936,13 @@ int test4_3467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_3467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 938 }
     sink_4_3467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 940 }
     return 0;
 }
 
-three sink_4_3567(volatile       A&);  // { dg-message "candidates" }
+three sink_4_3567(volatile       A&);  // { dg-message "three sink_4_3567|no known conversion" }
 five  sink_4_3567(               A&&);  // { dg-message "note" }
 six   sink_4_3567(const          A&&);  // { dg-message "" }
 seven sink_4_3567(volatile       A&&);  // { dg-message "note" }
@@ -868,7 +955,9 @@ int test4_3567()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_3567(ca);           // { dg-error "lvalue" }
     sink_4_3567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 957 }
     sink_4_3567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 959 }
     return 0;
 }
 
@@ -918,10 +1007,11 @@ int test4_3678()
     sink_4_3678(ca);           // { dg-error "lvalue" }
     sink_4_3678(cva);          // { dg-error "lvalue" }
     sink_4_3678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 1009 }
     return 0;
 }
 
-four  sink_4_4567(const volatile A&);  // { dg-message "candidates" }
+four  sink_4_4567(const volatile A&);  // { dg-message "note" }
 five  sink_4_4567(               A&&);  // { dg-message "note" }
 six   sink_4_4567(const          A&&);  // { dg-message "note" }
 seven sink_4_4567(volatile       A&&);  // { dg-message "note" }
@@ -933,11 +1023,12 @@ int test4_4567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_4567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 1025 }
     return 0;
 }
 
 four  sink_4_4678(const volatile A&);
-six   sink_4_4678(const          A&&);  // { dg-message "candidates" }
+six   sink_4_4678(const          A&&);  // { dg-message "note" }
 seven sink_4_4678(volatile       A&&);  // { dg-message "note" }
 eight sink_4_4678(const volatile A&&);  // { dg-message "note" }
 
@@ -948,6 +1039,7 @@ int test4_4678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_4_4678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 1041 }
     return 0;
 }
 
index 92ec1d9..660a689 100644 (file)
@@ -30,7 +30,7 @@ const volatile A cv_source();
 
 // 5 at a time
 
-one   sink_5_12345(               A&);  // { dg-message "candidates" }
+one   sink_5_12345(               A&);  // { dg-message "one sink_5_12345|no known conversion" }
 two   sink_5_12345(const          A&);  // { dg-message "note" }
 three sink_5_12345(volatile       A&);  // { dg-message "note" }
 four  sink_5_12345(const volatile A&);  // { dg-message "note" }
@@ -43,11 +43,13 @@ int test5_12345()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12345(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 45 }
     sink_5_12345(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
     return 0;
 }
 
-one   sink_5_12346(               A&);  // { dg-message "candidates" }
+one   sink_5_12346(               A&);  // { dg-message "one sink_5_12346|no known conversion" }
 two   sink_5_12346(const          A&);  // { dg-message "note" }
 three sink_5_12346(volatile       A&);  // { dg-message "note" }
 four  sink_5_12346(const volatile A&);  // { dg-message "note" }
@@ -60,11 +62,13 @@ int test5_12346()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12346(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 64 }
     sink_5_12346(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
     return 0;
 }
 
-one   sink_5_12347(               A&);  // { dg-message "candidates" }
+one   sink_5_12347(               A&);  // { dg-message "one sink_5_12347|no known conversion" }
 two   sink_5_12347(const          A&);  // { dg-message "note" }
 three sink_5_12347(volatile       A&);  // { dg-message "note" }
 four  sink_5_12347(const volatile A&);  // { dg-message "note" }
@@ -77,10 +81,11 @@ int test5_12347()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12347(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 83 }
     return 0;
 }
 
-one   sink_5_12356(               A&);  // { dg-message "candidates" }
+one   sink_5_12356(               A&);  // { dg-message "one sink_5_12356|no known conversion" }
 two   sink_5_12356(const          A&);  // { dg-message "note" }
 three sink_5_12356(volatile       A&);  // { dg-message "note" }
 five  sink_5_12356(               A&&);  // { dg-message "note" }
@@ -93,12 +98,15 @@ int test5_12356()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12356(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 100 }
     sink_5_12356(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 102 }
     sink_5_12356(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 104 }
     return 0;
 }
 
-one   sink_5_12357(               A&);  // { dg-message "candidates" }
+one   sink_5_12357(               A&);  // { dg-message "one sink_5_12357|no known conversion" }
 two   sink_5_12357(const          A&);  // { dg-message "note" }
 three sink_5_12357(volatile       A&);  // { dg-message "note" }
 five  sink_5_12357(               A&&);  // { dg-message "note" }
@@ -111,7 +119,9 @@ int test5_12357()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12357(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 121 }
     sink_5_12357(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 123 }
     return 0;
 }
 
@@ -131,7 +141,7 @@ int test5_12358()
     return 0;
 }
 
-one   sink_5_12367(               A&);  // { dg-message "candidates" }
+one   sink_5_12367(               A&);  // { dg-message "one sink_5_12367|no known conversion" }
 two   sink_5_12367(const          A&);  // { dg-message "note" }
 three sink_5_12367(volatile       A&);  // { dg-message "note" }
 six   sink_5_12367(const          A&&);  // { dg-message "note" }
@@ -144,8 +154,11 @@ int test5_12367()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12367(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 156 }
     sink_5_12367(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 158 }
     sink_5_12367(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 160 }
     return 0;
 }
 
@@ -181,7 +194,7 @@ int test5_12378()
     return 0;
 }
 
-one   sink_5_12456(               A&);  // { dg-message "candidates" }
+one   sink_5_12456(               A&);  // { dg-message "one sink_5_12456|no known conversion" }
 two   sink_5_12456(const          A&);  // { dg-message "note" }
 four  sink_5_12456(const volatile A&);  // { dg-message "note" }
 five  sink_5_12456(               A&&);  // { dg-message "note" }
@@ -194,11 +207,13 @@ int test5_12456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 209 }
     sink_5_12456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 211 }
     return 0;
 }
 
-one   sink_5_12457(               A&);  // { dg-message "candidates" }
+one   sink_5_12457(               A&);  // { dg-message "one sink_5_12457|no known conversion" }
 two   sink_5_12457(const          A&);  // { dg-message "note" }
 four  sink_5_12457(const volatile A&);  // { dg-message "note" }
 five  sink_5_12457(               A&&);  // { dg-message "note" }
@@ -211,10 +226,11 @@ int test5_12457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 228 }
     return 0;
 }
 
-one   sink_5_12467(               A&);  // { dg-message "candidates" }
+one   sink_5_12467(               A&);  // { dg-message "one sink_5_12467|no known conversion" }
 two   sink_5_12467(const          A&);  // { dg-message "note" }
 four  sink_5_12467(const volatile A&);  // { dg-message "note" }
 six   sink_5_12467(const          A&&);  // { dg-message "note" }
@@ -227,11 +243,13 @@ int test5_12467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 245 }
     sink_5_12467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 247 }
     return 0;
 }
 
-one   sink_5_12567(               A&);  // { dg-message "candidates" }
+one   sink_5_12567(               A&);  // { dg-message "one sink_5_12567|no known conversion" }
 two   sink_5_12567(const          A&);  // { dg-message "note" }
 five  sink_5_12567(               A&&);  // { dg-message "note" }
 six   sink_5_12567(const          A&&);  // { dg-message "note" }
@@ -245,7 +263,9 @@ int test5_12567()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_12567(va);          // { dg-error "lvalue" }
     sink_5_12567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 265 }
     sink_5_12567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 267 }
     return 0;
 }
 
@@ -284,7 +304,7 @@ int test5_12578()
 }
 
 one   sink_5_12678(               A&);
-two   sink_5_12678(const          A&);  // { dg-message "candidates" }
+two   sink_5_12678(const          A&);  // { dg-message "note" }
 six   sink_5_12678(const          A&&);  // { dg-message "note" }
 seven sink_5_12678(volatile       A&&);  // { dg-message "" }
 eight sink_5_12678(const volatile A&&);  // { dg-message "" }
@@ -298,10 +318,11 @@ int test5_12678()
     sink_5_12678(va);          // { dg-error "lvalue" }
     sink_5_12678(cva);         // { dg-error "lvalue" }
     sink_5_12678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 320 }
     return 0;
 }
 
-one   sink_5_13456(               A&);  // { dg-message "candidates" }
+one   sink_5_13456(               A&);  // { dg-message "one sink_5_13456|no known conversion" }
 three sink_5_13456(volatile       A&);  // { dg-message "note" }
 four  sink_5_13456(const volatile A&);  // { dg-message "note" }
 five  sink_5_13456(               A&&);  // { dg-message "note" }
@@ -314,11 +335,13 @@ int test5_13456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_13456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 337 }
     sink_5_13456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 339 }
     return 0;
 }
 
-one   sink_5_13457(               A&);  // { dg-message "candidates" }
+one   sink_5_13457(               A&);  // { dg-message "one sink_5_13457|no known conversion" }
 three sink_5_13457(volatile       A&);  // { dg-message "note" }
 four  sink_5_13457(const volatile A&);  // { dg-message "note" }
 five  sink_5_13457(               A&&);  // { dg-message "note" }
@@ -331,11 +354,13 @@ int test5_13457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_13457(c_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 356 }
     sink_5_13457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 358 }
     return 0;
 }
 
-one   sink_5_13467(               A&);  // { dg-message "candidates" }
+one   sink_5_13467(               A&);  // { dg-message "one sink_5_13467|no known conversion" }
 three sink_5_13467(volatile       A&);  // { dg-message "note" }
 four  sink_5_13467(const volatile A&);  // { dg-message "note" }
 six   sink_5_13467(const          A&&);  // { dg-message "note" }
@@ -348,11 +373,13 @@ int test5_13467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_13467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 375 }
     sink_5_13467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 377 }
     return 0;
 }
 
-one   sink_5_13567(               A&);  // { dg-message "candidates" }
+one   sink_5_13567(               A&);  // { dg-message "one sink_5_13567|no known conversion" }
 three sink_5_13567(volatile       A&);  // { dg-message "note" }
 five  sink_5_13567(               A&&);  // { dg-message "note" }
 six   sink_5_13567(const          A&&);  // { dg-message "" }
@@ -366,7 +393,9 @@ int test5_13567()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_13567(ca);          // { dg-error "lvalue" }
     sink_5_13567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 395 }
     sink_5_13567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 397 }
     return 0;
 }
 
@@ -419,10 +448,11 @@ int test5_13678()
     sink_5_13678(ca);          // { dg-error "lvalue" }
     sink_5_13678(cva);         // { dg-error "lvalue" }
     sink_5_13678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 450 }
     return 0;
 }
 
-one   sink_5_14567(               A&);  // { dg-message "candidates" }
+one   sink_5_14567(               A&);  // { dg-message "one sink_5_14567|no known conversion" }
 four  sink_5_14567(const volatile A&);  // { dg-message "note" }
 five  sink_5_14567(               A&&);  // { dg-message "note" }
 six   sink_5_14567(const          A&&);  // { dg-message "note" }
@@ -435,12 +465,13 @@ int test5_14567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_14567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 467 }
     return 0;
 }
 
 one   sink_5_14678(               A&);
 four  sink_5_14678(const volatile A&);
-six   sink_5_14678(const          A&&);  // { dg-message "candidates" }
+six   sink_5_14678(const          A&&);  // { dg-message "note" }
 seven sink_5_14678(volatile       A&&);  // { dg-message "note" }
 eight sink_5_14678(const volatile A&&);  // { dg-message "note" }
 
@@ -451,6 +482,7 @@ int test5_14678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_14678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 484 }
     return 0;
 }
 
@@ -472,7 +504,7 @@ int test5_15678()
     return 0;
 }
 
-two   sink_5_23456(const          A&);  // { dg-message "candidates" }
+two   sink_5_23456(const          A&);  // { dg-message "two sink_5_23456|no known conversion" }
 three sink_5_23456(volatile       A&);  // { dg-message "note" }
 four  sink_5_23456(const volatile A&);  // { dg-message "note" }
 five  sink_5_23456(               A&&);  // { dg-message "note" }
@@ -485,12 +517,15 @@ int test5_23456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23456(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 519 }
     sink_5_23456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 521 }
     sink_5_23456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 523 }
     return 0;
 }
 
-two   sink_5_23457(const          A&);  // { dg-message "candidates" }
+two   sink_5_23457(const          A&);  // { dg-message "two sink_5_23457|no known conversion" }
 three sink_5_23457(volatile       A&);  // { dg-message "note" }
 four  sink_5_23457(const volatile A&);  // { dg-message "note" }
 five  sink_5_23457(               A&&);  // { dg-message "note" }
@@ -503,11 +538,13 @@ int test5_23457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23457(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 540 }
     sink_5_23457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 542 }
     return 0;
 }
 
-two   sink_5_23458(const          A&);  // { dg-message "candidates" }
+two   sink_5_23458(const          A&);  // { dg-message "note" }
 three sink_5_23458(volatile       A&);  // { dg-message "note" }
 four  sink_5_23458(const volatile A&);  // { dg-message "note" }
 five  sink_5_23458(               A&&);  // { dg-message "note" }
@@ -520,10 +557,11 @@ int test5_23458()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23458(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 559 }
     return 0;
 }
 
-two   sink_5_23467(const          A&);  // { dg-message "candidates" }
+two   sink_5_23467(const          A&);  // { dg-message "two sink_5_23467|no known conversion" }
 three sink_5_23467(volatile       A&);  // { dg-message "note" }
 four  sink_5_23467(const volatile A&);  // { dg-message "note" }
 six   sink_5_23467(const          A&&);  // { dg-message "note" }
@@ -536,12 +574,15 @@ int test5_23467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23467(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 576 }
     sink_5_23467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 578 }
     sink_5_23467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 580 }
     return 0;
 }
 
-two   sink_5_23468(const          A&);  // { dg-message "candidates" }
+two   sink_5_23468(const          A&);  // { dg-message "note" }
 three sink_5_23468(volatile       A&);  // { dg-message "note" }
 four  sink_5_23468(const volatile A&);  // { dg-message "note" }
 six   sink_5_23468(const          A&&);  // { dg-message "note" }
@@ -554,10 +595,11 @@ int test5_23468()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23468(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 597 }
    return 0;
 }
 
-two   sink_5_23478(const          A&);  // { dg-message "candidates" }
+two   sink_5_23478(const          A&);  // { dg-message "note" }
 three sink_5_23478(volatile       A&);  // { dg-message "note" }
 four  sink_5_23478(const volatile A&);  // { dg-message "note" }
 seven sink_5_23478(volatile       A&&);  // { dg-message "note" }
@@ -570,10 +612,11 @@ int test5_23478()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23478(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 614 }
     return 0;
 }
 
-two   sink_5_23567(const          A&);  // { dg-message "candidates" }
+two   sink_5_23567(const          A&);  // { dg-message "two sink_5_23567|no known conversion" }
 three sink_5_23567(volatile       A&);  // { dg-message "note" }
 five  sink_5_23567(               A&&);  // { dg-message "note" }
 six   sink_5_23567(const          A&&);  // { dg-message "note" }
@@ -586,12 +629,15 @@ int test5_23567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23567(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 631 }
     sink_5_23567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 633 }
     sink_5_23567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 635 }
     return 0;
 }
 
-two   sink_5_23568(const          A&);  // { dg-message "candidates" }
+two   sink_5_23568(const          A&);  // { dg-message "note" }
 three sink_5_23568(volatile       A&);  // { dg-message "note" }
 five  sink_5_23568(               A&&);  // { dg-message "note" }
 six   sink_5_23568(const          A&&);  // { dg-message "note" }
@@ -605,10 +651,11 @@ int test5_23568()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23568(cva); // { dg-error "lvalue" }
     sink_5_23568(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 653 }
     return 0;
 }
 
-two   sink_5_23578(const          A&);  // { dg-message "candidates" }
+two   sink_5_23578(const          A&);  // { dg-message "note" }
 three sink_5_23578(volatile       A&);  // { dg-message "note" }
 five  sink_5_23578(               A&&);  // { dg-message "note" }
 seven sink_5_23578(volatile       A&&);  // { dg-message "note" }
@@ -622,10 +669,11 @@ int test5_23578()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23578(cva); // { dg-error "lvalue" }
     sink_5_23578(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 671 }
     return 0;
 }
 
-two   sink_5_23678(const          A&);  // { dg-message "candidates" }
+two   sink_5_23678(const          A&);  // { dg-message "note" }
 three sink_5_23678(volatile       A&);  // { dg-message "note" }
 six   sink_5_23678(const          A&&);  // { dg-message "note" }
 seven sink_5_23678(volatile       A&&);  // { dg-message "note" }
@@ -638,12 +686,14 @@ int test5_23678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_23678(a);         // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 688 }
     sink_5_23678(cva);      // { dg-error "lvalue" }
     sink_5_23678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 691 }
     return 0;
 }
 
-two   sink_5_24567(const          A&);  // { dg-message "candidates" }
+two   sink_5_24567(const          A&);  // { dg-message "two sink_5_24567|no known conversion" }
 four  sink_5_24567(const volatile A&);  // { dg-message "note" }
 five  sink_5_24567(               A&&);  // { dg-message "note" }
 six   sink_5_24567(const          A&&);  // { dg-message "note" }
@@ -656,10 +706,11 @@ int test5_24567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_24567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 708 }
     return 0;
 }
 
-two   sink_5_24678(const          A&);  // { dg-message "candidates" }
+two   sink_5_24678(const          A&);  // { dg-message "note" }
 four  sink_5_24678(const volatile A&);
 six   sink_5_24678(const          A&&);  // { dg-message "note" }
 seven sink_5_24678(volatile       A&&);  // { dg-message "note" }
@@ -672,6 +723,7 @@ int test5_24678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_24678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 725 }
     return 0;
 }
 
@@ -692,7 +744,7 @@ int test5_25678()
     return 0;
 }
 
-three sink_5_34567(volatile       A&);  // { dg-message "candidates" }
+three sink_5_34567(volatile       A&);  // { dg-message "three sink_5_34567|no known conversion" }
 four  sink_5_34567(const volatile A&);  // { dg-message "note" }
 five  sink_5_34567(               A&&);  // { dg-message "note" }
 six   sink_5_34567(const          A&&);  // { dg-message "note" }
@@ -705,12 +757,13 @@ int test5_34567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_34567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 759 }
     return 0;
 }
 
 three sink_5_34678(volatile       A&);
 four  sink_5_34678(const volatile A&);
-six   sink_5_34678(const          A&&);  // { dg-message "candidates" }
+six   sink_5_34678(const          A&&);  // { dg-message "note" }
 seven sink_5_34678(volatile       A&&);  // { dg-message "note" }
 eight sink_5_34678(const volatile A&&);  // { dg-message "note" }
 
@@ -721,6 +774,7 @@ int test5_34678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_5_34678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 776 }
     return 0;
 }
 
index 6a81f66..d0fdbb7 100644 (file)
@@ -30,7 +30,7 @@ const volatile A cv_source();
 
 // 6 at a time
 
-one   sink_6_123456(               A&);  // { dg-message "candidates" }
+one   sink_6_123456(               A&);  // { dg-message "one sink_6_123456|no known conversion" }
 two   sink_6_123456(const          A&);  // { dg-message "note" }
 three sink_6_123456(volatile       A&);  // { dg-message "note" }
 four  sink_6_123456(const volatile A&);  // { dg-message "note" }
@@ -44,11 +44,13 @@ int test6_123456()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_123456(v_source());   // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 46 }
     sink_6_123456(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 48 }
     return 0;
 }
 
-one   sink_6_123457(               A&);  // { dg-message "candidates" }
+one   sink_6_123457(               A&);  // { dg-message "one sink_6_123457|no known conversion" }
 two   sink_6_123457(const          A&);  // { dg-message "note" }
 three sink_6_123457(volatile       A&);  // { dg-message "note" }
 four  sink_6_123457(const volatile A&);  // { dg-message "note" }
@@ -62,10 +64,11 @@ int test6_123457()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_123457(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
     return 0;
 }
 
-two   sink_6_235678(const          A&);  // { dg-message "candidates" }
+two   sink_6_235678(const          A&);  // { dg-message "note" }
 three sink_6_235678(volatile       A&);  // { dg-message "note" }
 five  sink_6_235678(               A&&);  // { dg-message "note" }
 six   sink_6_235678(const          A&&);  // { dg-message "note" }
@@ -79,11 +82,12 @@ int test6_235678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_235678(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 84 }
     sink_6_235678(cva);                // { dg-error "lvalue" }
     return 0;
 }
 
-two   sink_6_234678(const          A&);  // { dg-message "candidates" }
+two   sink_6_234678(const          A&);  // { dg-message "note" }
 three sink_6_234678(volatile       A&);  // { dg-message "note" }
 four  sink_6_234678(const volatile A&);  // { dg-message "note" }
 six   sink_6_234678(const          A&&);  // { dg-message "note" }
@@ -97,11 +101,13 @@ int test6_234678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_234678(a);         // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 103 }
     sink_6_234678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 105 }
     return 0;
 }
 
-two   sink_6_234578(const          A&);  // { dg-message "candidates" }
+two   sink_6_234578(const          A&);  // { dg-message "note" }
 three sink_6_234578(volatile       A&);  // { dg-message "note" }
 four  sink_6_234578(const volatile A&);  // { dg-message "note" }
 five  sink_6_234578(               A&&);  // { dg-message "note" }
@@ -115,10 +121,11 @@ int test6_234578()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_234578(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 123 }
     return 0;
 }
 
-two   sink_6_234568(const          A&);  // { dg-message "candidates" }
+two   sink_6_234568(const          A&);  // { dg-message "note" }
 three sink_6_234568(volatile       A&);  // { dg-message "note" }
 four  sink_6_234568(const volatile A&);  // { dg-message "note" }
 five  sink_6_234568(               A&&);  // { dg-message "note" }
@@ -132,10 +139,11 @@ int test6_234568()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_234568(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 141 }
     return 0;
 }
 
-two   sink_6_234567(const          A&);  // { dg-message "candidates" }
+two   sink_6_234567(const          A&);  // { dg-message "two sink_6_234567|no known conversion" }
 three sink_6_234567(volatile       A&);  // { dg-message "note" }
 four  sink_6_234567(const volatile A&);  // { dg-message "note" }
 five  sink_6_234567(               A&&);  // { dg-message "note" }
@@ -149,14 +157,16 @@ int test6_234567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_234567(a);            // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 159 }
     sink_6_234567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 161 }
     return 0;
 }
 
 one   sink_6_134678(               A&);
 three sink_6_134678(volatile       A&);
 four  sink_6_134678(const volatile A&);
-six   sink_6_134678(const          A&&);  // { dg-message "candidates" }
+six   sink_6_134678(const          A&&);  // { dg-message "note" }
 seven sink_6_134678(volatile       A&&);  // { dg-message "note" }
 eight sink_6_134678(const volatile A&&);  // { dg-message "note" }
 
@@ -167,11 +177,12 @@ int test6_134678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_134678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 179 }
     return 0;
 }
 
 one   sink_6_124678(               A&);
-two   sink_6_124678(const          A&);  // { dg-message "candidates" }
+two   sink_6_124678(const          A&);  // { dg-message "note" }
 four  sink_6_124678(const volatile A&);
 six   sink_6_124678(const          A&&);  // { dg-message "note" }
 seven sink_6_124678(volatile       A&&);  // { dg-message "note" }
@@ -184,11 +195,12 @@ int test6_124678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_124678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 197 }
     return 0;
 }
 
 one   sink_6_123678(               A&);
-two   sink_6_123678(const          A&);  // { dg-message "candidates" }
+two   sink_6_123678(const          A&);  // { dg-message "note" }
 three sink_6_123678(volatile       A&);
 six   sink_6_123678(const          A&&);  // { dg-message "note" }
 seven sink_6_123678(volatile       A&&);  // { dg-message "note" }
@@ -202,10 +214,11 @@ int test6_123678()
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_123678(cva);                // { dg-error "lvalue" }
     sink_6_123678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 216 }
     return 0;
 }
 
-one   sink_6_123567(               A&);  // { dg-message "candidates" }
+one   sink_6_123567(               A&);  // { dg-message "one sink_6_123567|no known conversion" }
 two   sink_6_123567(const          A&);  // { dg-message "note" }
 three sink_6_123567(volatile       A&);  // { dg-message "note" }
 five  sink_6_123567(               A&&);  // { dg-message "note" }
@@ -219,7 +232,9 @@ int test6_123567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_123567(cva);          // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 234 }
     sink_6_123567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 236 }
     return 0;
 }
 
@@ -257,7 +272,7 @@ int test6_123578()
     return 0;
 }
 
-one   sink_6_123467(               A&);  // { dg-message "candidates" }
+one   sink_6_123467(               A&);  // { dg-message "one sink_6_123467|no known conversion" }
 two   sink_6_123467(const          A&);  // { dg-message "note" }
 three sink_6_123467(volatile       A&);  // { dg-message "note" }
 four  sink_6_123467(const volatile A&);  // { dg-message "note" }
@@ -271,11 +286,13 @@ int test6_123467()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_123467(source());     // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 288 }
     sink_6_123467(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 290 }
     return 0;
 }
 
-one   sink_6_124567(               A&);  // { dg-message "candidates" }
+one   sink_6_124567(               A&);  // { dg-message "one sink_6_124567|no known conversion" }
 two   sink_6_124567(const          A&);  // { dg-message "note" }
 four  sink_6_124567(const volatile A&);  // { dg-message "note" }
 five  sink_6_124567(               A&&);  // { dg-message "note" }
@@ -289,6 +306,7 @@ int test6_124567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_124567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 308 }
     return 0;
 }
 
@@ -310,7 +328,7 @@ int test6_125678()
     return 0;
 }
 
-one   sink_6_134567(               A&);  // { dg-message "candidates" }
+one   sink_6_134567(               A&);  // { dg-message "one sink_6_134567|no known conversion" }
 three sink_6_134567(volatile       A&);  // { dg-message "note" }
 four  sink_6_134567(const volatile A&);  // { dg-message "note" }
 five  sink_6_134567(               A&&);  // { dg-message "note" }
@@ -324,6 +342,7 @@ int test6_134567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_6_134567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 344 }
     return 0;
 }
 
index 94254b5..6071e05 100644 (file)
@@ -30,7 +30,7 @@ const volatile A cv_source();
 
 // 7 at a time
 
-one   sink_7_1234567(               A&);  // { dg-message "candidates" }
+one   sink_7_1234567(               A&);  // { dg-message "one sink_7_1234567|no known conversion" }
 two   sink_7_1234567(const          A&);  // { dg-message "note" }
 three sink_7_1234567(volatile       A&);  // { dg-message "note" }
 four  sink_7_1234567(const volatile A&);  // { dg-message "note" }
@@ -45,6 +45,7 @@ int test7_1234567()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_7_1234567(cv_source());  // { dg-error "no match" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
     return 0;
 }
 
@@ -66,7 +67,7 @@ int test7_1235678()
     return 0;
 }
 
-two   sink_7_2345678(const          A&);  // { dg-message "candidates" }
+two   sink_7_2345678(const          A&);  // { dg-message "note" }
 three sink_7_2345678(volatile       A&);  // { dg-message "note" }
 four  sink_7_2345678(const volatile A&);  // { dg-message "note" }
 five  sink_7_2345678(               A&&);  // { dg-message "note" }
@@ -81,11 +82,12 @@ int test7_2345678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_7_2345678(a);  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 84 }
     return 0;
 }
 
 one   sink_7_1234678(               A&);
-two   sink_7_1234678(const          A&);  // { dg-message "candidates" }
+two   sink_7_1234678(const          A&);  // { dg-message "note" }
 three sink_7_1234678(volatile       A&);
 four  sink_7_1234678(const volatile A&);
 six   sink_7_1234678(const          A&&);  // { dg-message "note" }
@@ -99,6 +101,7 @@ int test7_1234678()
           volatile A va;
     const volatile A cva = a; // { dg-error "lvalue" }
     sink_7_1234678(source());  // { dg-error "ambiguous" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 103 }
     return 0;
 }
 
index 5a9cbe0..fa2bb6a 100644 (file)
@@ -1,13 +1,14 @@
 // { dg-options "-std=c++0x" }
 
 template <class T, class U = double> 
-void f(T t = 0, U u = 0);      // { dg-message "candidate" }
+void f(T t = 0, U u = 0);      // { dg-message "note" }
 
 void g() 
 { 
   f(1, 'c'); // f<int,char>(1,'c') 
   f(1); // f<int,double>(1,0) 
   f(); // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
   f<int>(); // f<int,double>(0,0) 
   f<int,char>(); // f<int,char>(0,0) 
 } 
index 247efd4..d67b3b6 100644 (file)
@@ -5,7 +5,8 @@ template<class T, class U>
 auto f(T,U) -> decltype(T() + U())
 { return T() + U(); }
 
-template<class T> void g(T){}  // { dg-message "candidate" }
+template<class T> void g(T){}  // { dg-message "note" }
 
 int main() { g(f); }           // { dg-error "no matching function" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 10 }
 
index 60c4717..bd97305 100644 (file)
@@ -1,9 +1,11 @@
 // { dg-options "-std=gnu++0x" }
-template<class X, class Y, class... Z> X f(Y); // { dg-message "candidate" }
+template<class X, class Y, class... Z> X f(Y); // { dg-message "note" }
 void g() 
 { 
   int i = f<int>(5.6);
   int j = f(5.6);         // { dg-error "no matching" }
-  f<void>(f<int, bool>); 
+  // { dg-message "candidate" "candidate note" { target *-*-* } 6 }
+  f<void>(f<int, bool>);
   f<void>(f<int>);        // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 } 
index b8aec1f..5bf2116 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-options "-std=gnu++0x" }
-template<class X, class Y, class Z> X f(Y,Z); // { dg-message "candidate" }
+template<class X, class Y, class Z> X f(Y,Z); // { dg-message "note" }
 template<class... Args> void f2();
 void g() 
 { 
@@ -8,5 +8,6 @@ void g()
   f<int>("aa",3.0); // Y is deduced to be char*, and 
                     // Z is deduced to be double 
   f("aa",3.0); // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
   f2<char, short, int, long>(); // okay
 } 
index a85771d..1f21976 100644 (file)
@@ -1,9 +1,10 @@
 // { dg-options "-std=gnu++0x" }
 template<int I, typename... Args>
-void get_ith(const Args&... args); // { dg-message "candidate" }
+void get_ith(const Args&... args); // { dg-message "note" }
 
 void f()
 {
   get_ith<1, float>(1, 2.0, 'x');
   get_ith<1, int, double, char, int>(1, 2.0, 'x'); // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
index 9008180..fecb36e 100644 (file)
@@ -1,7 +1,7 @@
 // { dg-options "-std=c++0x" }
 
 template<typename _Tp>
-  _Tp&& forward(_Tp&& __t) { return __t; } // { dg-message "candidate" }
+  _Tp&& forward(_Tp&& __t) { return __t; } // { dg-message "note" }
 
 void f(...);
 
@@ -9,6 +9,7 @@ template<typename... Args>
 void g(Args&&... args)
 {
   f(forward<Args...>(args...)); // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 11 }
 }
 
 void h()
index 16df69b..2ff7e5b 100644 (file)
@@ -1,9 +1,10 @@
 // { dg-options "-std=c++0x" }
 
 template<class U, class... T>
-void f()                       // { dg-message "candidate" }
+void f()                       // { dg-message "note" }
 {
   f<T...>(); // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 6 }
 }
 
 template<>
index e71a84b..e8e1397 100644 (file)
@@ -6,5 +6,7 @@ struct A { // { dg-message "A" }
 
 void foo(volatile A a) { 
   1 ? a : 0; // { dg-error "match|temporary" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
   1 ? 0 : a; // { dg-error "match|temporary" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
 } 
index 8f6426b..3dd01c6 100644 (file)
@@ -7,7 +7,7 @@
 struct A 
 {
   void f();
-  void foo(void (A::*)(int));       // { dg-message "candidate" "" }
+  void foo(void (A::*)(int));       // { dg-message "void A::foo|no known conversion" "" }
   template<typename T>
     void g(T);
   void h()
@@ -15,5 +15,6 @@ struct A
     void (A::*p)() = &A::f;
     void (A::*q)() = &(A::f);       // { dg-error "parenthesized" "" }
     foo(&g<int>);                   // { dg-error "no matching" "" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 17 }
   }
 };
index 9c5a24e..fc611cd 100644 (file)
@@ -3,5 +3,4 @@
 
 struct A { };
 int main() { b: A() && && b; } // { dg-error "A\\(\\) && && *b" }
-
-// { dg-message "candidate" "additional" { target *-*-* } 5 }
+// { dg-message "candidate|operator&&|no known conversion" "additional" { target *-*-* } 5 }
index b0d3849..8ef8d68 100644 (file)
@@ -2,7 +2,7 @@
 // { dg-do compile }
 
 template <void (*fn) ()>
-void call ()                   // { dg-message "candidate" }
+void call ()                   // { dg-message "note" }
 {
   fn ();
 }
@@ -27,7 +27,9 @@ int main ()
   };
   call<&B1::fn1> ();
   call<&B2::fn2> ();   // { dg-error "not external linkage|no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 29 }
   call<&fn3> ();
   call<&B1::fn4> ();
   call<&fn5> ();       // { dg-error "not external linkage|no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 33 }
 }
index 5e37f8a..f6a9deb 100644 (file)
@@ -8,11 +8,12 @@
 // errors.
 
 template <unsigned int N>
-char* begin(char (&a) [N] );   // { dg-message "candidate" }
+char* begin(char (&a) [N] );   // { dg-message "note" }
 
 void bar(int i)
 {
   char d[i] ;
   
   begin(d);  // { dg-error "no matching function" "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 17 }
 }
index 71f1eb3..17e01b3 100644 (file)
@@ -1,9 +1,9 @@
 // PR c++/26690
 // { dg-do compile }
 
-struct A                       // { dg-message "A::A" }
+struct A                       // { dg-message "A::A|candidate expects" }
 {
-  A (int);                             // { dg-message "candidates" }
+  A (int);                             // { dg-message "note" }
 };
 
 void
@@ -11,5 +11,6 @@ foo ()
 {
   A a(0);
 #pragma omp parallel private (a)       // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
   ;
 }
index 5d29f32..ca01a3a 100644 (file)
@@ -4,7 +4,7 @@
 struct A
 {
   A (int x = 6);                       // { dg-message "A::A\\(int\\)" }
-  A (long long x = 12LL);              // { dg-message "candidates" }
+  A (long long x = 12LL);              // { dg-message "note" }
 };
 
 void
@@ -12,5 +12,6 @@ foo ()
 {
   A a(6);
 #pragma omp parallel private (a)       // { dg-error "call of overloaded" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
   ;
 }
index 9e8a08a..ed50467 100644 (file)
@@ -6,6 +6,7 @@ struct G {
 };
 
 class A                                // { dg-error "" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 {
   const G g;
 };
index b861c60..0c4393e 100644 (file)
@@ -22,5 +22,6 @@ struct B : A1, A2
 int Foo (B const &b)
 {
   return b; // { dg-error "ambiguous" "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 24 }
 }
 
index b29aa46..11a6d97 100644 (file)
@@ -6,8 +6,9 @@ int main() {
   int i;
   void* operator new(__SIZE_TYPE__ s, int* p);
   int* e = new(&i) int;                    // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
   int* f = new int;
   return 0;
 }
 
-// { dg-message "candidate" "" { target *-*-* } 0 }
+// { dg-message "operator new|candidate expects" "" { target *-*-* } 0 }
index 7c3b30d..32abb53 100644 (file)
@@ -4,7 +4,7 @@
 //  an ambiguous overload set to be created.
 
 namespace B {
-  void f(int);     // { dg-message "candidates" }
+  void f(int);     // { dg-message "note" }
   void f(double);  // { dg-message "note" }
 }
 
@@ -20,6 +20,7 @@ void h()
   using C::f;
   f('h');
   f(1);         // { dg-error "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
   void f(int);  // { dg-error "previous using declaration" }
 }
 
index 7845501..4ee935a 100644 (file)
@@ -3,8 +3,10 @@
 struct A                       // { dg-message "note" }
 {
   A(void x); // { dg-error "invalid use|incomplete type|candidates" }
+  // { dg-message "" "match candidate text" { target *-*-* } 5 }
 };
 
 struct B : A {}; // { dg-error "no matching function for call|deleted" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 9 }
  
 B b; // { dg-message "synthesized method|deleted" }
index e546b37..f3b17aa 100644 (file)
@@ -1,7 +1,7 @@
 // PR c++/34275
 // { dg-do compile }
 
-struct A                       // { dg-message "operator=" }
+struct A                       // { dg-message "operator=|no known conversion" }
 {
   virtual A foo ();
 };
@@ -9,4 +9,5 @@ struct A                        // { dg-message "operator=" }
 void bar (A& a)
 {
   a.foo () = 0; // { dg-error "A::foo\\(\\) = 0" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 11 }
 }   
index d3e3e09..95c9d73 100644 (file)
@@ -3,11 +3,12 @@
 // { dg-options "" }
 // { dg-bogus "not supported by" "" { target *-*-* } 0 }
 
-struct A {};           // { dg-message "operator=" }
+struct A {};           // { dg-message "operator=|no known conversion" }
 
 void
 foo ()
 {
   A a;
   a = ({ { 1; } });    // { dg-error "no match for" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
 }
index d54fec9..63ecbf5 100644 (file)
@@ -6,4 +6,5 @@ template<int> void foo(struct {}*); // { dg-message "" }
 void bar()
 {
   foo<0>(0);                   // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
index 53d5c85..bc386ed 100644 (file)
@@ -3,7 +3,7 @@
 
 template <class C, void (C::*M) ()>
 static
-void foo(void *obj)            // { dg-message "candidate" }
+void foo(void *obj)            // { dg-message "note" }
 {
   C *p = static_cast<C*>(obj);
   (p->*M)();
@@ -14,6 +14,7 @@ static void
 bar(C *c, void (C::*m) ())
 {
   foo<C,m>((void *)c);// { dg-error "(not a valid template arg|pointer-to-member|no matching fun)" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
 }
 
 struct S
index c1c8677..119cbb0 100644 (file)
@@ -5,7 +5,7 @@ struct A {};
 
 template <int A::* p>
 int
-foo(A* q)                      // { dg-message "candidate" }
+foo(A* q)                      // { dg-message "note" }
 {
   return q->*p;
 }
@@ -15,6 +15,7 @@ int
 bar(int T::* p)
 {
   return foo<p>(0);// { dg-error "(not a valid template arg|no matching func|pointer-to-member)" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 17 }
 }
 
 int i = bar<A>(0);
index 21948bf..d11e00a 100644 (file)
@@ -20,4 +20,5 @@ void f(B);                    // { dg-message "note" "candidate" }
 int main()
 {
   f (42);                      // { dg-error "ambiguous" "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
index eb65271..34624cd 100644 (file)
@@ -10,8 +10,8 @@ struct A {};
 
 struct B : A
 {
-  B(int); // { dg-message "B::B" "" }
-  B(B&);  // { dg-message "candidates" "" }
+  B(int); // { dg-message "B::B|no known conversion" "" }
+  B(B&);  // { dg-message "note" "" }
 };
 
 void foo(B);                   // { dg-error "initializing" }
@@ -19,4 +19,5 @@ void foo(B);                  // { dg-error "initializing" }
 void bar()
 {
   foo(0); // { dg-error "no matching function" "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 21 }
 }
index 652b8e1..fdd2081 100644 (file)
@@ -13,5 +13,6 @@ int main ()
 {
   A a;
   a + a;                       // { dg-error "ambiguous" "ambiguous" }
-                                // { dg-message "candidates" "candidates" { target *-*-* } 15 }
+  // { dg-message "operator" "match candidate text" { target *-*-* } 15 }
+  // { dg-message "candidates" "candidates" { target *-*-* } 15 }
 }
index 2bd8e53..f0ec385 100644 (file)
@@ -17,4 +17,5 @@ B
 f (B const& b)
 {
   return b;                    // { dg-error "matching" "matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 19 }
 }
index 89282fa..9adb4c0 100644 (file)
@@ -16,6 +16,7 @@ void f(X *x = new X[4]);       // { dg-error "" }
 void f(X *x = new (3) X(6));   // { dg-error "" } 
 
 void f(X *x = new (2) X[10]);  // { dg-error "" } 
-// { dg-message "candidate" "" { target *-*-* } 00 }
+// { dg-message "candidate" "candidate note" { target *-*-* } 18 }
+// { dg-message "operator new|candidate expects" "match candidate text" { target *-*-* } 00 }
 
 void f(X *x = new X[10][5]);   // { dg-error "" } 
index 6638dc9..8f00d41 100644 (file)
@@ -8,14 +8,17 @@ namespace
   void baz (...);                      // { dg-message "baz" }
 }
 
-template <int> void foo (...);         // { dg-message "candidate" }
-template <int> void bar (int, ...);    // { dg-message "candidate" }
-void baz (...);                                // { dg-message "candidate" }
+template <int> void foo (...);         // { dg-message "note" }
+template <int> void bar (int, ...);    // { dg-message "note" }
+void baz (...);                                // { dg-message "note" }
 
 void
 test ()
 {
   foo <0> (0);         // { dg-error "is ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 18 }
   bar <1> (0, 1);      // { dg-error "is ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 20 }
   baz (0);             // { dg-error "is ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
index 61b60b0..935f8d4 100644 (file)
@@ -2,8 +2,9 @@
 
 void foo(void);
 int foo(int);
-template <typename T> void bar(T f); // { dg-message "candidate" }
+template <typename T> void bar(T f); // { dg-message "note" }
 
 void baz() {
   bar(foo); // { dg-error "<unresolved overloaded function type>" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
index 54b1221..514d83f 100644 (file)
@@ -73,10 +73,12 @@ int main () {
   exit (0);
 
   _exit (0); // { dg-error "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 75 }
   abort ();
 
   c1 ();
   C1 (); // { dg-error "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 80 }
 
   c2 ();
   C2 (); // one might expect an ambiguous call error here as well, but
@@ -84,6 +86,7 @@ int main () {
 
   c3 ();
   C3 (); // { dg-error "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 88 }
   C3 (0);
   C3 (0l);
 }
index 4597d6c..0ac7029 100644 (file)
@@ -1,13 +1,15 @@
 // { dg-options "-w" }
 
 class QString { // { dg-error "previous definition" }
-  QString (const QString & a); // { dg-message "candidate is" }
+  QString (const QString & a); // { dg-message "QString::QString|candidate expects" }
 };
 
 class QString { }; // { dg-error "redefinition" }
 
 const QString q () {
   QString z; // { dg-error "matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 10 }
   int x;
   return x ? QString () : QString (); // { dg-error "matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 }
index 3b7e717..010a403 100644 (file)
@@ -1,7 +1,7 @@
 // { dg-options "-fshow-column -fmessage-length=0   -ansi -pedantic-errors -Wno-long-long " }
 // PR C++/17867
 
-struct A                       // { dg-message "8:operator=" }
+struct A                       // { dg-message "8:operator=|no known conversion for implicit" }
 {
   A(int);
 };
@@ -11,4 +11,5 @@ const A& foo();
 void bar()
 {
   foo()=A(0); // { dg-error "12:no match for 'operator='" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 }
index a0b1e7f..3ca210a 100644 (file)
@@ -2,10 +2,11 @@
 // PR c++/21908
 
 struct virt { virt () {} virt (int i) {} };
-struct der : public virtual virt { // { dg-message "8:der::der" }
-  der (int i) : virt(i) {} // { dg-message "3:der::der" }
+struct der : public virtual virt { // { dg-message "8:der::der|candidate expects" }
+  der (int i) : virt(i) {} // { dg-message "3:der::der|candidate expects" }
 };
 struct top : public der { 
   top () {} // { dg-bogus "der\\(const" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 };
 // { dg-error "10:no matching function for call to 'der" "" { target *-*-* } 9 }
index e07d5f8..0d3f3fa 100644 (file)
@@ -1,4 +1,5 @@
 template <int I>
-void f();                      // { dg-message "candidate" }
+void f();                      // { dg-message "note" }
 
 void g() { f<(3, 2)>(); } // { dg-error "" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 4 }
index 0ac5311..2d823f8 100644 (file)
@@ -7,9 +7,10 @@
 
 struct A
 {
-  template<typename>   void foo(int); // { dg-message "candidate" }
-  template<typename T> void bar(T t) { // { dg-message "candidate" }
+  template<typename>   void foo(int); // { dg-message "note" }
+  template<typename T> void bar(T t) { // { dg-message "note" }
     this->foo<typename T>(t); } // { dg-error "expected|parse error|no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
   template<typename T> void bad(T t) {
     foo<typename T>(t); } // { dg-error "expected|parse error|no matching" }
 };
@@ -19,6 +20,7 @@ struct B
 {
   void bar(T t) {
     A().bar<typename T>(t); } // { dg-error "expected|parse error|no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
   void bad(T t) {
     B<typename T>::bar(t); } // { dg-error "invalid|not a template" }
 };
index adc5bbb..d8879c5 100644 (file)
@@ -8,4 +8,5 @@ namespace std
 template<int> void foo()
 {
   !typeid(void); // { dg-error "!typeid\\(void\\)|candidate is" }
+  // { dg-message "" "match candidate text" { target *-*-* } 10 }
 }
index fdf4f12..f930d2e 100644 (file)
@@ -4,7 +4,7 @@
 
 namespace N1 {
   struct X {
-    X();                       // { dg-message "candidate" }
+    X();                       // { dg-message "note" }
     explicit X(const X&);
   };
   void f(X);                   // { dg-error "initializing" }
@@ -12,13 +12,14 @@ namespace N1 {
   { 
     X x; 
     f(x);     // { dg-error "matching" "matching" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
   }
 }
 
 namespace N2 {
   template <class T>
   struct X {
-    X();                       // { dg-message "candidate" }
+    X();                       // { dg-message "note" }
     explicit X(const X&);
   };
 
@@ -30,6 +31,7 @@ namespace N2 {
   { 
     X<T> x; 
     N2::f(x);   // { dg-error "matching" "matching" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 33 }
   }
 
   template int foo<float>();  // { dg-message "instantiated from here" }
index de41d6a..57d06af 100644 (file)
@@ -1,10 +1,11 @@
 int i;
 struct A
 {
-  template <class T> operator T&() { return i; } // { dg-message "candidate" }
+  template <class T> operator T&() { return i; } // { dg-message "note" }
 };
 
 int main()
 {
   A().operator int();          // { dg-error "operator int" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 }
index bec506d..c6b3ff8 100644 (file)
@@ -7,8 +7,9 @@
 struct A
 {
   A(A&); // { dg-message "note" }
-  template <class T> A(T);     // { dg-message "candidate" }
+  template <class T> A(T);     // { dg-message "note" }
 };
 
 A a = 0; // { dg-error "no matching function" }
+// { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 
index aef0df0..6072423 100644 (file)
@@ -11,7 +11,7 @@ struct coperator_stack
 struct helper {};
 
 template<class F>
-void bla(F f) // { dg-message "candidate is" }
+void bla(F f) // { dg-message "bla|no known conversion" }
 {
 }
 
@@ -21,6 +21,7 @@ struct definition
  definition()
  {
    bla(coperator_stack::push3<helper>); // { dg-error "matching" }
+   // { dg-message "candidate" "candidate note" { target *-*-* } 23 }
  }
 };
 
index fbf41e0..e8a1d4e 100644 (file)
@@ -1,9 +1,11 @@
 template <typename T>
-void f(int, T (*)() = 0);      // { dg-message "candidate" }
+void f(int, T (*)() = 0);      // { dg-message "note" }
 
 void g() {
   typedef int A[2];
   f<A>(0); // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 6 }
   typedef void F();
   f<F>(0); // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 9 }
 }
index b36d382..1e850cd 100644 (file)
@@ -40,9 +40,12 @@ struct foo {
       bind (&bar::baikt);
 
       bind (&barf); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 42 }
       bind (&foo::barf); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 44 }
 
       bindm (&barf); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 47 }
       bindm (&foo::barf);
 
       bindn (&barf);
@@ -50,11 +53,15 @@ struct foo {
 
       bindb (&barf);
       bindb (&foo::barf); // { dg-error "ambiguous" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 55 }
 
       bind (&bark); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 58 }
       bind (&bar::bark); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 60 }
 
       bindm (&bark); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 63 }
       bindm (&bar::bark);
 
       bindn (&bark);
@@ -62,6 +69,7 @@ struct foo {
 
       bindb (&bark);
       bindb (&bar::bark); // { dg-error "ambiguous" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 71 }
     }
   };
 
@@ -84,9 +92,12 @@ struct foo {
       bind (&barT::baikt);
 
       bind (&barf); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 94 }
       bind (&foo::barf); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 96 }
 
       bindm (&barf); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 99 }
       bindm (&foo::barf);
 
       bindn (&barf);
@@ -94,11 +105,15 @@ struct foo {
 
       bindb (&barf);
       bindb (&foo::barf); // { dg-error "ambiguous" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 107 }
 
       bind (&bark); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 110 }
       bind (&barT::bark); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 112 }
 
       bindm (&bark); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 115 }
       bindm (&barT::bark);
 
       bindn (&bark);
@@ -106,6 +121,7 @@ struct foo {
 
       bindb (&bark);
       bindb (&barT::bark); // { dg-error "ambiguous" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 123 }
     }
   };
 
index 6c25b9f..14a2132 100644 (file)
@@ -32,8 +32,12 @@ int main()
 {
   A<B> a;
   a.f();                       // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 34 }
   a.g();                       // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 36 }
 
   f(i);                                // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 39 }
   f(p);                                // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 41 }
 }
index c5df56f..7746ed2 100644 (file)
@@ -26,5 +26,7 @@ struct B
 int main()
 {
   f(1);                                // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 28 }
   B<A<int> >().f();            // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 30 }
 }
index ac22f2f..44cbce9 100644 (file)
@@ -26,4 +26,5 @@ int main()
 {
   s<int>::t y;
   cout << y; // { dg-error "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 28 }
 }
index 73b6c6f..d86ea06 100644 (file)
@@ -3,11 +3,12 @@
 
 struct A;
 
-template<A&> void foo();       // { dg-message "candidate" }
+template<A&> void foo();       // { dg-message "note" }
 
 A a;  // { dg-error "incomplete type" }
 
 void bar()
 {
   foo<a>();  // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 12 }
 }
index 9cdf310..e592c65 100644 (file)
@@ -13,12 +13,13 @@ int baz() { return A<0>::i; }
 
 struct B
 {
-  static void foo (int);       // { dg-message "candidate is" }
+  static void foo (int);       // { dg-message "B::foo|candidate expects" }
 };
 
 template <typename T> struct C
 {
   virtual void bar() const { T::foo(); } // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 21 }
 };
 
 C<B> c;                                // { dg-message "instantiated" }
index e3044e9..7ee922b 100644 (file)
@@ -1,8 +1,9 @@
 // PR c++/17413
 
-template <typename T> void foo() {} // { dg-message "candidate" }
+template <typename T> void foo() {} // { dg-message "note" }
 
 int main () {
   struct S {};
   foo<S> (); // { dg-error "match" } 
+  // { dg-message "candidate" "candidate note" { target *-*-* } 7 }
 }
index 1fa39bc..4a87177 100644 (file)
@@ -1,10 +1,11 @@
 template <class T> struct PCVector2 // { dg-message "note" }
 {
-    template <class T2> PCVector2(const PCVector2<T> &cv) ; // { dg-message "candidate" }
+    template <class T2> PCVector2(const PCVector2<T> &cv) ; // { dg-message "note" }
 
     PCVector2<T> operator- (const PCVector2<T> &ov) const 
        { 
          return PCVector2<T>(ov.xFIELD, ov.yFIELD); // { dg-error "matching" }
+         // { dg-message "candidate" "candidate note" { target *-*-* } 7 }
        }
 
     T xFIELD, yFIELD;
index 50be5f1..230330e 100644 (file)
@@ -1,4 +1,4 @@
-extern void *operator new(__SIZE_TYPE__); // { dg-message "candidate" }
+extern void *operator new(__SIZE_TYPE__); // { dg-message "note" }
 
 template <class T >
 struct C
@@ -6,6 +6,7 @@ struct C
   void f() {
     int* node;
     new (&node) int(0); // { dg-error "new" }
+    // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
   }
 };
 
index dfd491d..35be778 100644 (file)
@@ -5,5 +5,6 @@ template<operator+> void foo(); // { dg-error "before|non-function|template" }
 void bar()
 {
   foo();                        // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 7 }
 }
  
index fd86833..5e26c44 100644 (file)
@@ -14,4 +14,5 @@ struct A
 template<int> void foo()
 {
   unique(A().begin); // { dg-error "no matching function" "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 16 }
 }
index 848a6d9..1919047 100644 (file)
@@ -7,9 +7,10 @@
 
 struct A {};
 
-template <typename T> T A::* Foo (); // { dg-message "candidate" }
+template <typename T> T A::* Foo (); // { dg-message "note" }
 
 void Baz ()
 {
   Foo <int &> (); // { dg-error "no matching function" "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 14 }
 }
index 2348873..dee3c62 100644 (file)
@@ -8,9 +8,10 @@ struct B
   void foo();
 };
 
-template<void (A::*)()> void bar(); // { dg-message "candidate" }
+template<void (A::*)()> void bar(); // { dg-message "note" }
 
 void baz()
 {
   bar<&B::foo>();  // { dg-error "not a valid template argument|no match" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
index b1422c3..62262c4 100644 (file)
@@ -6,7 +6,7 @@
 // Pointer to member function template argument deduction ICE.
 
 
-template <class CONT> void queryAliases(CONT& fill_me); // { dg-message "candidate is" }
+template <class CONT> void queryAliases(CONT& fill_me); // { dg-message "queryAliases|no known conversion" }
 
 struct SpyExample
 {
@@ -17,4 +17,5 @@ struct SpyExample
 void SpyExample::ready()
 {
   queryAliases(inputs); // { dg-error "matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 19 }
 }
index 8585f83..d0473f5 100644 (file)
@@ -11,7 +11,7 @@ struct B
 
 struct D : B {};
 
-template <int (D::*fun)() const> int Get(); // { dg-message "candidate" }
+template <int (D::*fun)() const> int Get(); // { dg-message "note" }
 
 int main () 
 {
index c3ebd8c..8bca7f6 100644 (file)
@@ -4,13 +4,14 @@
 
 template <class U> struct A
 {
-       template <class T> class B {}; // { dg-message "operator=" }
+       template <class T> class B {}; // { dg-message "operator=|no known conversion" }
 };
 
 template <template <class> class TT> void f()
 {
        TT<int> y;
        y = 0; // { dg-error "no match" }
+       // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 }
 
 template <class T> struct C
index 0b11ecc..e39ca6b 100644 (file)
@@ -8,10 +8,11 @@ template<int T> struct cl {
   const static int value = T;
 };
 
-template<int I> void fn (char (*) [cl<I>::value] = 0 ); // { dg-message "candidate" }
+template<int I> void fn (char (*) [cl<I>::value] = 0 ); // { dg-message "note" }
 
 void foo (void)
 {
   fn<0> ();  // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 15 }
 }
 
index 7e627f1..f916ea4 100644 (file)
@@ -16,6 +16,6 @@ template <typename T> struct srp
 };
 ptr<int> parent_get()
 {
-  srp<int> parent;
+  srp<int> parent;             // { dg-message "candidate" }
   return parent; // { dg-error "is ambiguous" }
 }
index 1c027fa..3d401f0 100644 (file)
@@ -20,6 +20,7 @@ struct Bar
 Foo Quux (Bar const &b)
 {
   return b; // { dg-error "ambiguous" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 22 }
 }
 
 
index 23e5a7a..861d187 100644 (file)
@@ -18,9 +18,12 @@ void f4(T, C<5>);            // { dg-message "note" }
 template<int N> struct X {};
 void g() {
   f1(5l, X<5>()); // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 20 }
   f2(X<5>(), 5);
   f3(X<5>(), 5l); // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 23 }
   f4(5, X<5>());
   f4(5l, X<5>()); // { dg-error "no matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 26 }
   f4((short)5, X<5>());
 }
index 2676d8f..60fad06 100644 (file)
@@ -6,4 +6,5 @@ template<typedef> void foo();  // { dg-error "no type|typedef declaration|templa
 void bar()
 {
   foo<int>();                  // { dg-error "matching" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 8 }
 }
index 7b19e1e..8dc434b 100644 (file)
@@ -12,36 +12,48 @@ struct MyClass {
 };
 
 template<class CLASS>
-void mFunction(void (CLASS::* method)()) {} // { dg-message "candidate" }
+void mFunction(void (CLASS::* method)()) {} // { dg-message "note" }
 
 template<class CLASS>
-void cFunction(void (CLASS::* method)() const) {} // { dg-message "candidate" }
+void cFunction(void (CLASS::* method)() const) {} // { dg-message "note" }
 
 template<class CLASS>
-void vFunction(void (CLASS::* method)() volatile) {} // { dg-message "candidate" }
+void vFunction(void (CLASS::* method)() volatile) {} // { dg-message "note" }
 
 template<class CLASS>
-void cvFunction(void (CLASS::* method)() const volatile) {} // { dg-message "candidate" }
+void cvFunction(void (CLASS::* method)() const volatile) {} // { dg-message "note" }
 
 int main() {
   mFunction(&MyClass::mMethod);
   mFunction(&MyClass::cMethod);    // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 28 }
   mFunction(&MyClass::vMethod);    // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 30 }
   mFunction(&MyClass::cvMethod);   // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 32 }
 
   cFunction(&MyClass::mMethod);    // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 35 }
   cFunction(&MyClass::cMethod);
   cFunction(&MyClass::vMethod);    // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 38 }
   cFunction(&MyClass::cvMethod);   // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 40 }
 
   vFunction(&MyClass::mMethod);    // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 43 }
   vFunction(&MyClass::cMethod);    // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 45 }
   vFunction(&MyClass::vMethod);
   vFunction(&MyClass::cvMethod);   // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 48 }
 
   cvFunction(&MyClass::mMethod);   // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 51 }
   cvFunction(&MyClass::cMethod);   // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 53 }
   cvFunction(&MyClass::vMethod);   // { dg-error "no matching function" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 55 }
   cvFunction(&MyClass::cvMethod);
 
   return 0;
index a49f5c1..ed6b31c 100644 (file)
@@ -8,7 +8,7 @@ struct A
 
 template <typename S, typename T, typename U, typename S::v = &S::v::s>
 typename S::A
-foo (S c, T t, U u)            // { dg-message "candidate" }
+foo (S c, T t, U u)            // { dg-message "note" }
 {
 }
 
@@ -21,6 +21,7 @@ struct B
     {
       A a;
       A b = foo (this, a, t); // { dg-error "no matching function" }
+      // { dg-message "candidate" "candidate note" { target *-*-* } 23 }
     }
   } c;
   B () : c (A ())
index 4e890fe..b12ecb2 100644 (file)
@@ -8,7 +8,7 @@ template <typename T> void Foo1 (T const *a) {a (1);} // #2
 
 template <typename T> T const *Foo2 (T *);
 
-template <typename T> void Foo3 (T *, T const * = 0); // { dg-message "candidate" }
+template <typename T> void Foo3 (T *, T const * = 0); // { dg-message "note" }
 
 void Bar ()
 {
@@ -19,4 +19,5 @@ void Bar ()
   Foo3 (&Baz);
 
   Foo3 (&Baz, &Baz); // { dg-error "no matching function" "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 21 }
 }
index 23f61f3..2bfa563 100644 (file)
@@ -3,7 +3,7 @@
 
 // PR c++/3518
 template <typename T> void Foo (const T &);
-template <typename T> void Baz (const T (*)()); // { dg-message "candidate" }
+template <typename T> void Baz (const T (*)()); // { dg-message "note" }
 
 int &f ();
 
@@ -11,4 +11,5 @@ int main()
 {
   Foo (f);
   Baz (f); // { dg-error "no matching function" "" }
+  // { dg-message "candidate" "candidate note" { target *-*-* } 13 }
 }
index 1e16c43..40f6b92 100644 (file)
@@ -4,7 +4,7 @@
 // Origin:Wolfgang Bangerth <bangerth@dealii.org>
 // PR 21799: deduction of cvqualifiers on member functions was wrong
 
-template <class T> void f (T &,       void (T::*)()      ); // { dg-message "candidate" }
+template <class T> void f (T &,       void (T::*)()      ); // { dg-message "note" }
  
 struct X { 
     void g() const {}
@@