From fdd332545cacd845162103bf9855c4605be73584 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 13 Apr 2018 10:35:32 +0200 Subject: re PR middle-end/81657 (FAIL: gcc.dg/20050503-1.c scan-assembler-not call) PR middle-end/81657 * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. * builtins.c (expand_builtin_memory_copy_args): Use BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, handle dest_addr == pc_rtx. * gcc.dg/string-opt-1.c: Remove bogus comment. Expect a mempcpy call. Co-Authored-By: Jakub Jelinek From-SVN: r259366 --- gcc/expr.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gcc/expr.h') diff --git a/gcc/expr.h b/gcc/expr.h index b3d523b..52a26e7 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -100,7 +100,11 @@ enum block_op_methods BLOCK_OP_NO_LIBCALL, BLOCK_OP_CALL_PARM, /* Like BLOCK_OP_NORMAL, but the libcall can be tail call optimized. */ - BLOCK_OP_TAILCALL + BLOCK_OP_TAILCALL, + /* Like BLOCK_OP_NO_LIBCALL, but instead of emitting a libcall return + pc_rtx to indicate nothing has been emitted and let the caller handle + it. */ + BLOCK_OP_NO_LIBCALL_RET }; typedef rtx (*by_pieces_constfn) (void *, HOST_WIDE_INT, scalar_int_mode); -- cgit v1.1