coroutines: Fix unused value found by static analysis.

This fixes up the zero-initialization of the coro frame pointer
to avoid an unused assigned value, spotted by Martin Liska with
static analysis.

gcc/cp/ChangeLog:

	* coroutines.cc (morph_fn_to_coro): Revise initialization
	of the frame pointer to avoid an unused value.
This commit is contained in:
Iain Sandoe 2020-05-30 17:03:40 +01:00
parent 05e4db63d0
commit 9df0ff5f21
1 changed files with 3 additions and 5 deletions

View File

@ -3889,11 +3889,9 @@ morph_fn_to_coro (tree orig, tree *resumer, tree *destroyer)
/* The decl_expr for the coro frame pointer, initialize to zero so that we
can pass it to the IFN_CO_FRAME (since there's no way to pass a type,
directly apparently). This avoids a "used uninitialized" warning. */
tree r = build_stmt (fn_start, DECL_EXPR, coro_fp);
tree zeroinit = build1 (CONVERT_EXPR, coro_frame_ptr, integer_zero_node);
r = build2 (INIT_EXPR, TREE_TYPE (coro_fp), coro_fp, zeroinit);
r = coro_build_cvt_void_expr_stmt (r, fn_start);
add_stmt (r);
DECL_INITIAL (coro_fp) = zeroinit;
add_decl_expr (coro_fp);
/* The CO_FRAME internal function is a mechanism to allow the middle end
to adjust the allocation in response to optimisations. We provide the
@ -4047,7 +4045,7 @@ morph_fn_to_coro (tree orig, tree *resumer, tree *destroyer)
}
tree allocated = build1 (CONVERT_EXPR, coro_frame_ptr, new_fn);
r = build2 (INIT_EXPR, TREE_TYPE (coro_fp), coro_fp, allocated);
tree r = build2 (INIT_EXPR, TREE_TYPE (coro_fp), coro_fp, allocated);
r = coro_build_cvt_void_expr_stmt (r, fn_start);
add_stmt (r);