[Bug d/101664] d: Return the correct value for C++ constructor calls
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jul 29 15:13:00 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101664
--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Iain Buclaw <ibuclaw@gcc.gnu.org>:
https://gcc.gnu.org/g:7616ed6307c90b5bbf1bf53550d33cc674ab4b6f
commit r12-2598-g7616ed6307c90b5bbf1bf53550d33cc674ab4b6f
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date: Mon Jul 26 19:34:33 2021 +0200
d: Return the correct value for C++ constructor calls (PR101664)
C++ constructors return void, even though the front-end semantic treats
them as implicitly returning `this'. To handle this correctly, the
object reference is cached and used as the result of the expression.
PR d/101664
gcc/d/ChangeLog:
* expr.cc (ExprVisitor::visit (CallExp *)): Use object expression
as
result for C++ constructor calls.
gcc/testsuite/ChangeLog:
* gdc.dg/extern-c++/extern-c++.exp: New.
* gdc.dg/extern-c++/pr101664.d: New test.
* gdc.dg/extern-c++/pr101664_1.cc: New test.
More information about the Gcc-bugs
mailing list