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?