PR55406 is an issue where an incorrect CFG is constructed containing
duplicate references to subtrees. That's due to co_return keeping the
original expression and the promise call. It needs the former for (a)
instantiation and (b) co_returns with void expressions.
Add a flag to CoreturnStmt indicating whether the operand member is
needed for the void-return case. This simplifies code-generation but
also allows the CFG generator to look at that flag to determine
whether it needs to emit the operand in addition to the promise call.
This is not true for co_return statement. According to http://eel.is/c++draft/stmt.return.coroutine, after co_return we need to execute codes in final suspend points. So the CFG analysis might not be accurate for coroutines. Maybe it is good to leave a FIXME here.