Hi
On 04/18/2012 01:44 PM, Paolo Carlini wrote:
+ cand = tourney (candidates, tf_warning_or_error);
This seems unlikely to do the right thing; we can get here in both
SFINAE and non-SFINAE situations. In build_user_type_conversion_1 I
think we can get away with checking LOOKUP_COMPLAIN; for
perform_overload_conversion we need to pass in complain.
Ok. perform_overload_conversion can get a complain very smoothly, too
bad I didn't try it to earlier today. build_user_type_conversion_1 seems
more tricky: I understood your suggestion as something like:
- cand = tourney (candidates);
+ cand = tourney (candidates, (flags & LOOKUP_COMPLAIN)
+ ? tf_warning_or_error : tf_none);
and didn't work well enough, I got these fails:
FAIL: g++.old-deja/g++.benjamin/16077.C -std=gnu++98 nic (test for
warnings, line 24)
FAIL: g++.old-deja/g++.benjamin/16077.C -std=gnu++98 conv (test for
warnings, line 24)
FAIL: g++.old-deja/g++.benjamin/16077.C -std=gnu++98 note (test for
warnings, line 24)
FAIL: g++.old-deja/g++.benjamin/16077.C -std=gnu++11 nic (test for
warnings, line 24)
FAIL: g++.old-deja/g++.benjamin/16077.C -std=gnu++11 conv (test for
warnings, line 24)
FAIL: g++.old-deja/g++.benjamin/16077.C -std=gnu++11 note (test for
warnings, line 24)
FAIL: g++.old-deja/g++.other/overcnv2.C -std=gnu++98 B (test for
warnings, line 19)
FAIL: g++.old-deja/g++.other/overcnv2.C -std=gnu++98 conv (test for
warnings, line 19)
FAIL: g++.old-deja/g++.other/overcnv2.C -std=gnu++98 note (test for
warnings, line 19)
FAIL: g++.old-deja/g++.other/overcnv2.C -std=gnu++11 B (test for
warnings, line 19)
FAIL: g++.old-deja/g++.other/overcnv2.C -std=gnu++11 conv (test for
warnings, line 19)
FAIL: g++.old-deja/g++.other/overcnv2.C -std=gnu++11 note (test for
warnings, line 19)
Thus, if I don't ear from you, I'm probably going to add complain to
build_user_type_conversion_1, hopefully I can manage, I remember that
earlier today I tried and was dragging in a lot of changes...
Thanks,
Paolo.