aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/method.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2021-05-05 22:25:45 -0400
committerJason Merrill <jason@redhat.com>2021-05-07 12:09:38 -0400
commitfc178519771db508c03611cff4a1466cf67fce1d (patch)
treef89f6573fcc112ba773d574c5b9fe38a0f767e1a /gcc/cp/method.c
parent14ed21f8749ae359690d9c4a69ca38cc45d0d1b0 (diff)
downloadgcc-fc178519771db508c03611cff4a1466cf67fce1d.zip
gcc-fc178519771db508c03611cff4a1466cf67fce1d.tar.gz
gcc-fc178519771db508c03611cff4a1466cf67fce1d.tar.bz2
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.
Diffstat (limited to 'gcc/cp/method.c')
-rw-r--r--gcc/cp/method.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 0f416be..f8c9456 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1793,7 +1793,7 @@ build_stub_type (tree type, int quals, bool rvalue)
/* Build a dummy glvalue from dereferencing a dummy reference of type
REFTYPE. */
-static tree
+tree
build_stub_object (tree reftype)
{
if (!TYPE_REF_P (reftype))