https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104087
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |jason at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- For build_over_call, the difference is that in the first case obj_arg satisfies is_dummy_arg (so we create a TARGET_EXPR for it) while in the second case it doesn't so in that case we evaluate A::A ((struct A *) D.2164) and only the latter fails. If both are invalid, we'd need to reject it somewhere earlier, but e.g. build_new_1 on the other side doesn't know that the ctor is immediate. Jason, any thoughts on this?