]> gcc.gnu.org Git - gcc.git/commit
c++: avoid non-TARGET_EXPR class prvalues
authorJason Merrill <jason@redhat.com>
Thu, 6 May 2021 02:25:45 +0000 (22:25 -0400)
committerJason Merrill <jason@redhat.com>
Fri, 7 May 2021 16:09:38 +0000 (12:09 -0400)
commitfc178519771db508c03611cff4a1466cf67fce1d
treef89f6573fcc112ba773d574c5b9fe38a0f767e1a
parent14ed21f8749ae359690d9c4a69ca38cc45d0d1b0
c++: avoid non-TARGET_EXPR class prvalues

Around PR98469 I asked Jakub to wrap a class BIT_CAST_EXPR in TARGET_EXPR;
SPACESHIP_EXPR needs the same thing.  The dummy CAST_EXPR created in
can_convert is another instance of a non-TARGET_EXPR prvalue, so let's use
the declval-like build_stub_object there instead.

gcc/cp/ChangeLog:

* cp-tree.h (build_stub_object): Declare.
* method.c (build_stub_object): No longer static.
* call.c (can_convert): Use it.
* tree.c (build_dummy_object): Adjust comment.
* typeck.c (cp_build_binary_op): Wrap SPACESHIP_EXPR in a
TARGET_EXPR.
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/method.c
gcc/cp/tree.c
gcc/cp/typeck.c
This page took 0.055678 seconds and 5 git commands to generate.