Tim Shen
f120a7b6a3
[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr.
...
These ExprWithCleanups are added for holding a RunCleanupsScope not
for destructor calls; rather, they are for lifetime marks. This requires
ExprWithCleanups to keep a bit to indicate whether it have cleanups with
side effects (e.g. dtor calls).
Differential Revision: http://reviews.llvm.org/D20498
llvm-svn: 272296
2016-06-09 19:54:46 +00:00
Richard Smith
2af65c4a89
[coroutines] Build a CoroutineBodyStmt when finishing parsing a coroutine, and form the initial_suspend, final_suspend, and get_return_object calls.
...
llvm-svn: 253946
2015-11-24 02:34:39 +00:00
Richard Smith
71d403effb
[coroutines] Check for overload sets in co_yield / co_return operands being resolved by a call to yield_value / return_value before rejecting them.
...
llvm-svn: 253817
2015-11-22 07:33:28 +00:00
Richard Smith
4ba66602bd
[coroutines] Build implicit return_value / return_void calls for co_return.
...
llvm-svn: 253816
2015-11-22 07:05:16 +00:00
Richard Smith
1f38eddee0
[coroutines] Materialize the awaitable before generating the await_* calls.
...
llvm-svn: 253812
2015-11-22 03:13:02 +00:00
Richard Smith
d7bed4d660
[coroutines] Factor out co_await representation into common base class for co_await and co_yield, and use it to hold await_* calls.
...
llvm-svn: 253811
2015-11-22 02:57:17 +00:00
Richard Smith
10610f7f2f
[coroutines] Better handling of placeholder types.
...
llvm-svn: 253731
2015-11-20 22:57:24 +00:00
Richard Smith
23da82c5ea
[coroutines] Synthesize yield_value call for co_yield.
...
llvm-svn: 253725
2015-11-20 22:40:06 +00:00
Richard Smith
744b224bb5
[coroutines] Per latest wording paper, co_* are no longer permitted in any
...
unevaluated operands.
llvm-svn: 253641
2015-11-20 02:54:01 +00:00
Richard Smith
9b2f53e39e
[coroutines] Tweak diagnostics to always use fully-qualified name for std::coroutine_traits.
...
llvm-svn: 253535
2015-11-19 02:36:35 +00:00
Richard Smith
9f690bd80b
[coroutines] Creation of promise object, lookup of operator co_await, building
...
of await_* calls, and AST representation for same.
llvm-svn: 251387
2015-10-27 06:02:45 +00:00
Richard Smith
cfd53b4e99
[coroutines] Initial stub Sema functionality for handling coroutine await / yield / return.
...
llvm-svn: 250993
2015-10-22 06:13:50 +00:00