This patch series implements support for coroutines whose frames require
alignment.

The standard currently does not specify much about this case AFAICT, so
we can do this for now (until P2014 progresses).

The new dump was useful for testing, and might be useful to coroutine
hackers.

This patchset also depends on Iains ramp rework patch, so will be pushed
after.

Tested on x86_64-pc-linux-gnu.

OK for trunk?

TIA, have a most lovely evening.

Arsen Arsenović (2):
  c++: Implement a coroutine language debug dump
  c++/coroutines: handle (new-)extended alignment [PR104177]

 gcc/c-family/c-pretty-print.cc                |   3 +-
 gcc/coroutine-passes.cc                       |   8 +-
 gcc/cp/coroutines.cc                          | 538 ++++++++++++++++--
 gcc/cp/coroutines.h                           |   2 +-
 gcc/cp/cp-objcp-common.cc                     |   2 +
 gcc/cp/cp-tree.h                              |   1 +
 gcc/cp/cxx-pretty-print.cc                    |   3 +-
 gcc/dumpfile.cc                               |   2 +-
 .../g++.dg/coroutines/frame-alignment-4.C     |  35 ++
 .../coroutines/torture/frame-alignment-1.C    |  73 +++
 .../coroutines/torture/frame-alignment-2.C    | 101 ++++
 .../coroutines/torture/frame-alignment-3.C    |  87 +++
 12 files changed, 791 insertions(+), 64 deletions(-)
 create mode 100644 gcc/testsuite/g++.dg/coroutines/frame-alignment-4.C
 create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/frame-alignment-1.C
 create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/frame-alignment-2.C
 create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/frame-alignment-3.C

-- 
2.46.0

Reply via email to