As reported in https://bugs.llvm.org/show_bug.cgi?id=40978, it's an
error to use the co_yield or co_await keywords outside of a valid
"suspension context" as defined by [expr.await]p2 of
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4775.pdf.
Whether or not the current scope was in a function-try-block's
(https://en.cppreference.com/w/cpp/language/function-try-block) handler
could be determined using scope flag Scope::FnTryCatchScope. No
such flag existed for a simple C++ catch statement, so this commit adds
one.
Does removing this check now mean that we're not checking that co_return statements don't appear in unevaluated contexts?
Or is that already handled elsewhere by the fact that co_return statements are not expressions and are therefore detected earlier as a grammar violation when parsing sizeof() expression?