+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/110635
+ * coroutines.cc
+ (cp_coroutine_transform::wrap_original_function_body): Look through
+ initial await target expressions to find the actual co_await_expr
+ that we need to update.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/102051
+ * coroutines.cc
+ (cp_coroutine_transform::build_ramp_function): Handle
+ "throwing_cleanup" here instead of ...
+ (cp_coroutine_transform::apply_transforms): ... here.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/115908
+ * coroutines.cc
+ (cp_coroutine_transform::build_ramp_function): Rework the return
+ value initialisation to initialise the return slot always from
+ get_return_object, even if that implies carrying out conversions
+ to do so.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/109682
+ * coroutines.cc
+ (cp_coroutine_transform::build_ramp_function): Allow for cases where
+ get_return_on_allocation_fail has a type convertible to the ramp
+ return type.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/100476
+ * coroutines.cc
+ (cp_coroutine_transform::build_ramp_function): Remove special
+ handling of void get_return_object expressions.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/113773
+ * coroutines.cc
+ (cp_coroutine_transform::build_ramp_function): Only cleanup the
+ frame state on exceptions that occur before the initial await
+ resume has begun.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ * call.cc (build_op_delete_call_1): Renamed and added a param
+ to allow the caller to prioritize two argument usual deleters.
+ (build_op_delete_call): New.
+ (build_coroutine_op_delete_call): New.
+ * coroutines.cc (coro_get_frame_dtor): Rename...
+ (build_coroutine_frame_delete_expr):... to this; simplify to
+ use build_op_delete_call for all cases.
+ (build_actor_fn): Use revised frame delete function.
+ (build_coroutine_frame_alloc_expr): New.
+ (cp_coroutine_transform::complete_ramp_function): Rename...
+ (cp_coroutine_transform::build_ramp_function): ... to this.
+ Reorder code to carry out checks for prerequisites before the
+ codegen. Split out the allocation/delete code.
+ (cp_coroutine_transform::apply_transforms): Use revised name.
+ * coroutines.h: Rename function.
+ * cp-tree.h (build_coroutine_op_delete_call): New.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+ Arsen Arsenović <arsen@aarsen.me>
+
+ * coroutines.cc (struct suspend_point_info, struct param_info,
+ struct local_var_info, struct susp_frame_data,
+ struct local_vars_frame_data): Move to coroutines.h.
+ (build_actor_fn): Use start/finish function APIs.
+ (build_destroy_fn): Likewise.
+ (coro_build_actor_or_destroy_function): No longer mark the
+ actor / destroyer as DECL_COROUTINE_P.
+ (coro_rewrite_function_body): Use class members.
+ (cp_coroutine_transform::wrap_original_function_body): Likewise.
+ (build_ramp_function): Replace by...
+ (cp_coroutine_transform::complete_ramp_function): ...this.
+ (cp_coroutine_transform::cp_coroutine_transform): New.
+ (cp_coroutine_transform::~cp_coroutine_transform): New
+ (morph_fn_to_coro): Replace by...
+ (cp_coroutine_transform::apply_transforms): ...this.
+ (cp_coroutine_transform::finish_transforms): New.
+ * cp-tree.h (morph_fn_to_coro): Remove.
+ * decl.cc (emit_coro_helper): Remove.
+ (finish_function): Revise handling of coroutine transforms.
+ * coroutines.h: New file.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ * coroutines.cc (build_actor_fn): Arrange to apply any
+ required parameter copy DTORs in reverse order to their
+ creation.
+ (coro_rewrite_function_body): Handle revised param uses.
+ (morph_fn_to_coro): Split the ramp function completion
+ into a separate function.
+ (build_ramp_function): New.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ * coroutines.cc (build_co_await): Simplify checks for the cases that
+ we need to materialise an awaiter.
+
2024-08-21 Iain Sandoe <iain@sandoe.co.uk>
* coroutines.cc (split_coroutine_body_from_ramp): Check
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/110635
+ * g++.dg/coroutines/pr110635.C: New test.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/102051
+ * g++.dg/coroutines/pr102051.C: New test.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/115908
+ * g++.dg/coroutines/pr115908.C: New test.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/109682
+ * g++.dg/coroutines/pr109682.C: New test.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/100476
+ * g++.dg/coroutines/coro-bad-gro-01-void-gro-non-class-coro.C:
+ Adjust expected diagnostic.
+ * g++.dg/coroutines/pr102489.C: Avoid void get_return_object.
+ * g++.dg/coroutines/pr103868.C: Likewise.
+ * g++.dg/coroutines/pr94879-folly-1.C: Likewise.
+ * g++.dg/coroutines/pr94883-folly-2.C: Likewise.
+ * g++.dg/coroutines/pr96749-2.C: Likewise.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/113773
+ * g++.dg/coroutines/torture/pr113773.C: New test.
+
+2024-08-24 Iain Sandoe <iain@sandoe.co.uk>
+
+ * g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C: Use revised
+ diagnostics.
+ * g++.dg/coroutines/coro-bad-gro-00-class-gro-scalar-return.C:
+ Likewise.
+ * g++.dg/coroutines/coro-bad-gro-01-void-gro-non-class-coro.C:
+ Likewise.
+ * g++.dg/coroutines/coro-bad-grooaf-00-static.C: Likewise.
+ * g++.dg/coroutines/ramp-return-b.C: Likewise.
+
+2024-08-24 Simon Martin <simon@nasilyan.com>
+
+ PR c++/113746
+ * g++.dg/parse/crash76.C: New test.
+
+2024-08-24 Georg-Johann Lay <avr@gjlay.de>
+
+ * gcc.dg/torture/pr115929-2.c: Add dg-require-effective-target scheduling.
+ * gcc.dg/torture/pr116343.c: Same.
+
2024-08-23 Manolis Tsamis <manolis.tsamis@vrull.eu>
PR rtl-optimization/116372