Commit 6ac6529e by JunMa

Add error check on return value of build_co_await

gcc/cp/ChangeLog
	* coroutines.cc (finish_co_await_expr): Add error check on return
	value of build_co_await.
	(finish_co_yield_expr): Ditto.
parent c75199b7
2020-01-22 Jun Ma <JunMa@linux.alibaba.com>
* coroutines.cc (finish_co_await_expr): Add error check on return
value of build_co_await.
(finish_co_yield_expr,): Ditto.
2020-01-22 Jun Ma <JunMa@linux.alibaba.com>
* coroutines.cc (lookup_awaitable_member): Lookup an awaitable member.
(lookup_promise_method): Emit diagnostic when get NULL_TREE back only.
(build_co_await): Use lookup_awaitable_member instead of lookup_member.
......
......@@ -819,8 +819,11 @@ finish_co_await_expr (location_t kw, tree expr)
/* Now we want to build co_await a. */
tree op = build_co_await (kw, a, CO_AWAIT_SUSPEND_POINT);
TREE_SIDE_EFFECTS (op) = 1;
SET_EXPR_LOCATION (op, kw);
if (op != error_mark_node)
{
TREE_SIDE_EFFECTS (op) = 1;
SET_EXPR_LOCATION (op, kw);
}
return op;
}
......@@ -885,9 +888,11 @@ finish_co_yield_expr (location_t kw, tree expr)
promise transform_await(). */
tree op = build_co_await (kw, yield_call, CO_YIELD_SUSPEND_POINT);
op = build2_loc (kw, CO_YIELD_EXPR, TREE_TYPE (op), expr, op);
TREE_SIDE_EFFECTS (op) = 1;
if (op != error_mark_node)
{
op = build2_loc (kw, CO_YIELD_EXPR, TREE_TYPE (op), expr, op);
TREE_SIDE_EFFECTS (op) = 1;
}
return op;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment