c++: binding reference to comma expr [PR114561]
commit5d7e9a35024f065b25f61747859c7cb7a770c92b
authorJason Merrill <jason@redhat.com>
Tue, 2 Apr 2024 14:52:28 +0000 (2 10:52 -0400)
committerJason Merrill <jason@redhat.com>
Tue, 2 Apr 2024 18:11:13 +0000 (2 14:11 -0400)
tree23711ec0873aad4663f5ec2595b0cf56637ab596
parent0e64bbb8823f7b3757befc878ed177dfb59943d1
c++: binding reference to comma expr [PR114561]

We represent a reference binding where the referent type is more qualified
by a ck_ref_bind around a ck_qual.  We performed the ck_qual and then tried
to undo it with STRIP_NOPS, but that doesn't work if the conversion is
buried in COMPOUND_EXPR.  So instead let's avoid performing that fake
conversion in the first place.

PR c++/114561
PR c++/114562

gcc/cp/ChangeLog:

* call.cc (convert_like_internal): Avoid adding qualification
conversion in direct reference binding.

gcc/testsuite/ChangeLog:

* g++.dg/conversion/ref10.C: New test.
* g++.dg/conversion/ref11.C: New test.
gcc/cp/call.cc
gcc/testsuite/g++.dg/conversion/ref10.C [new file with mode: 0644]
gcc/testsuite/g++.dg/conversion/ref11.C [new file with mode: 0644]