This is an automated email from the git hooks/post-receive script.
unknown user pushed a change to branch master in repository gcc.
from 472ef1d34bbe arm: Remove yet another unused variable. new 49789fd08378 [C++ coroutines] Initial implementation. new 7ebbff3acbe6 [libiberty] Update demangler to handle co_await operator.
The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference.
Summary of changes: gcc/ChangeLog | 26 + gcc/Makefile.in | 1 + gcc/builtin-types.def | 5 + gcc/builtins.def | 9 + gcc/c-family/ChangeLog | 10 + gcc/c-family/c-common.c | 5 + gcc/c-family/c-common.h | 5 + gcc/c-family/c-cppbuiltin.c | 2 + gcc/c-family/c.opt | 4 + gcc/coroutine-builtins.def | 53 + gcc/coroutine-passes.cc | 532 +++ gcc/cp/ChangeLog | 36 + gcc/cp/Make-lang.in | 2 +- gcc/cp/call.c | 20 + gcc/cp/config-lang.in | 2 +- gcc/cp/constexpr.c | 6 + gcc/cp/coroutines.cc | 3643 ++++++++++++++++++++ gcc/cp/cp-objcp-common.c | 4 + gcc/cp/cp-tree.def | 24 + gcc/cp/cp-tree.h | 19 +- gcc/cp/decl.c | 60 + gcc/cp/lex.c | 2 + gcc/cp/operators.def | 1 + gcc/cp/parser.c | 89 +- gcc/cp/pt.c | 21 + gcc/cp/tree.c | 31 + gcc/doc/invoke.texi | 4 + gcc/function.h | 3 + gcc/internal-fn.c | 26 + gcc/internal-fn.def | 6 + gcc/passes.def | 2 + gcc/testsuite/ChangeLog | 120 + .../coroutines/co-await-syntax-00-needs-expr.C | 7 + .../coroutines/co-await-syntax-01-outside-fn.C | 5 + .../coroutines/co-await-syntax-02-outside-fn.C | 5 + .../g++.dg/coroutines/co-await-syntax-03-auto.C | 16 + .../coroutines/co-await-syntax-04-ctor-dtor.C | 8 + .../coroutines/co-await-syntax-05-constexpr.C | 12 + .../g++.dg/coroutines/co-await-syntax-06-main.C | 7 + .../g++.dg/coroutines/co-await-syntax-07-varargs.C | 14 + .../coroutines/co-await-syntax-08-lambda-auto.C | 19 + .../coroutines/co-return-syntax-01-outside-fn.C | 6 + .../coroutines/co-return-syntax-02-outside-fn.C | 5 + .../g++.dg/coroutines/co-return-syntax-03-auto.C | 12 + .../coroutines/co-return-syntax-04-ctor-dtor.C | 8 + .../coroutines/co-return-syntax-05-constexpr-fn.C | 12 + .../g++.dg/coroutines/co-return-syntax-06-main.C | 7 + .../g++.dg/coroutines/co-return-syntax-07-vararg.C | 14 + .../coroutines/co-return-syntax-08-bad-return.C | 43 + .../coroutines/co-return-syntax-09-lambda-auto.C | 19 + .../coroutines/co-yield-syntax-00-needs-expr.C | 7 + .../coroutines/co-yield-syntax-01-outside-fn.C | 6 + .../coroutines/co-yield-syntax-02-outside-fn.C | 6 + .../g++.dg/coroutines/co-yield-syntax-03-auto.C | 12 + .../coroutines/co-yield-syntax-04-ctor-dtor.C | 8 + .../coroutines/co-yield-syntax-05-constexpr.C | 12 + .../g++.dg/coroutines/co-yield-syntax-06-main.C | 7 + .../g++.dg/coroutines/co-yield-syntax-07-varargs.C | 14 + .../coroutines/co-yield-syntax-08-needs-expr.C | 37 + .../coroutines/co-yield-syntax-09-lambda-auto.C | 19 + gcc/testsuite/g++.dg/coroutines/coro-builtins.C | 17 + gcc/testsuite/g++.dg/coroutines/coro-missing-gro.C | 32 + .../g++.dg/coroutines/coro-missing-promise-yield.C | 33 + .../g++.dg/coroutines/coro-missing-ret-value.C | 34 + .../g++.dg/coroutines/coro-missing-ret-void.C | 34 + .../g++.dg/coroutines/coro-missing-ueh-1.C | 17 + .../g++.dg/coroutines/coro-missing-ueh-2.C | 18 + .../g++.dg/coroutines/coro-missing-ueh-3.C | 18 + gcc/testsuite/g++.dg/coroutines/coro-missing-ueh.h | 23 + gcc/testsuite/g++.dg/coroutines/coro-pre-proc.C | 9 + gcc/testsuite/g++.dg/coroutines/coro.h | 152 + .../g++.dg/coroutines/coro1-ret-int-yield-int.h | 133 + .../{tm/tm.exp => coroutines/coroutines.exp} | 35 +- .../torture/alloc-00-gro-on-alloc-fail.C | 118 + .../coroutines/torture/alloc-01-overload-newdel.C | 120 + .../g++.dg/coroutines/torture/call-00-co-aw-arg.C | 73 + .../coroutines/torture/call-01-multiple-co-aw.C | 73 + .../g++.dg/coroutines/torture/call-02-temp-co-aw.C | 72 + .../coroutines/torture/call-03-temp-ref-co-aw.C | 72 + .../g++.dg/coroutines/torture/class-00-co-ret.C | 41 + .../coroutines/torture/class-01-co-ret-parm.C | 57 + .../coroutines/torture/class-02-templ-parm.C | 52 + .../torture/class-03-operator-templ-parm.C | 52 + .../g++.dg/coroutines/torture/class-04-lambda-1.C | 58 + .../torture/class-05-lambda-capture-copy-local.C | 59 + .../torture/class-06-lambda-capture-ref.C | 59 + .../coroutines/torture/co-await-00-trivial.C | 52 + .../coroutines/torture/co-await-01-with-value.C | 57 + .../g++.dg/coroutines/torture/co-await-02-xform.C | 58 + .../g++.dg/coroutines/torture/co-await-03-rhs-op.C | 58 + .../coroutines/torture/co-await-04-control-flow.C | 50 + .../g++.dg/coroutines/torture/co-await-05-loop.C | 51 + .../g++.dg/coroutines/torture/co-await-06-ovl.C | 65 + .../g++.dg/coroutines/torture/co-await-07-tmpl.C | 132 + .../coroutines/torture/co-await-08-cascade.C | 63 + .../g++.dg/coroutines/torture/co-await-09-pair.C | 57 + .../torture/co-await-10-template-fn-arg.C | 60 + .../coroutines/torture/co-await-11-forwarding.C | 43 + .../coroutines/torture/co-await-12-operator-2.C | 66 + .../coroutines/torture/co-await-13-return-ref.C | 58 + .../torture/co-ret-00-void-return-is-ready.C | 90 + .../torture/co-ret-01-void-return-is-suspend.C | 94 + .../torture/co-ret-03-different-GRO-type.C | 92 + .../coroutines/torture/co-ret-04-GRO-nontriv.C | 109 + .../coroutines/torture/co-ret-05-return-value.C | 38 + .../torture/co-ret-06-template-promise-val-1.C | 105 + .../coroutines/torture/co-ret-07-void-cast-expr.C | 44 + .../torture/co-ret-08-template-cast-ret.C | 104 + .../coroutines/torture/co-ret-09-bool-await-susp.C | 97 + .../torture/co-ret-10-expression-evaluates-once.C | 49 + .../coroutines/torture/co-ret-11-co-ret-co-await.C | 40 + .../torture/co-ret-12-co-ret-fun-co-await.C | 48 + .../coroutines/torture/co-ret-13-template-2.C | 56 + .../coroutines/torture/co-ret-14-template-3.C | 58 + .../g++.dg/coroutines/torture/co-yield-00-triv.C | 129 + .../g++.dg/coroutines/torture/co-yield-01-multi.C | 64 + .../g++.dg/coroutines/torture/co-yield-02-loop.C | 68 + .../g++.dg/coroutines/torture/co-yield-03-tmpl.C | 140 + .../torture/co-yield-04-complex-local-state.C | 162 + .../g++.dg/coroutines/torture/co-yield-05-co-aw.C | 55 + .../coroutines/torture/co-yield-06-fun-parm.C | 64 + .../torture/co-yield-07-template-fn-param.C | 71 + .../coroutines/torture/co-yield-08-more-refs.C | 68 + .../torture/co-yield-09-more-templ-refs.C | 68 + .../g++.dg/coroutines/torture/coro-torture.exp | 19 + .../g++.dg/coroutines/torture/exceptions-test-0.C | 167 + .../g++.dg/coroutines/torture/func-params-00.C | 42 + .../g++.dg/coroutines/torture/func-params-01.C | 45 + .../g++.dg/coroutines/torture/func-params-02.C | 50 + .../g++.dg/coroutines/torture/func-params-03.C | 49 + .../g++.dg/coroutines/torture/func-params-04.C | 57 + .../g++.dg/coroutines/torture/func-params-05.C | 57 + .../g++.dg/coroutines/torture/func-params-06.C | 47 + .../g++.dg/coroutines/torture/lambda-00-co-ret.C | 35 + .../coroutines/torture/lambda-01-co-ret-parm.C | 48 + .../coroutines/torture/lambda-02-co-yield-values.C | 64 + .../coroutines/torture/lambda-03-auto-parm-1.C | 46 + .../coroutines/torture/lambda-04-templ-parm.C | 47 + .../torture/lambda-05-capture-copy-local.C | 66 + .../coroutines/torture/lambda-06-multi-capture.C | 48 + .../coroutines/torture/lambda-07-multi-yield.C | 46 + .../coroutines/torture/lambda-08-co-ret-parm-ref.C | 59 + .../g++.dg/coroutines/torture/local-var-0.C | 37 + .../g++.dg/coroutines/torture/local-var-1.C | 37 + .../g++.dg/coroutines/torture/local-var-2.C | 50 + .../g++.dg/coroutines/torture/local-var-3.C | 65 + .../g++.dg/coroutines/torture/local-var-4.C | 75 + .../coroutines/torture/mid-suspend-destruction-0.C | 107 + gcc/testsuite/g++.dg/coroutines/torture/pr92933.C | 18 + gcc/tree-pass.h | 2 + libiberty/cp-demangle.c | 1 + libiberty/testsuite/demangle-expected | 3 + libstdc++-v3/ChangeLog | 6 + libstdc++-v3/include/Makefile.am | 1 + libstdc++-v3/include/Makefile.in | 1 + libstdc++-v3/include/std/coroutine | 291 ++ 156 files changed, 11027 insertions(+), 23 deletions(-) create mode 100644 gcc/coroutine-builtins.def create mode 100644 gcc/coroutine-passes.cc create mode 100644 gcc/cp/coroutines.cc create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-00-needs-expr.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-01-outside-fn.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-02-outside-fn.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-03-auto.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-04-ctor-dtor.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-05-constexpr.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-06-main.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-07-varargs.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-await-syntax-08-lambda-auto.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-01-outside-fn.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-02-outside-fn.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-03-auto.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-04-ctor-dtor.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-05-constexpr-fn.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-06-main.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-07-vararg.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-08-bad-return.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-return-syntax-09-lambda-auto.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-00-needs-expr.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-01-outside-fn.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-02-outside-fn.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-03-auto.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-04-ctor-dtor.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-05-constexpr.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-06-main.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-07-varargs.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-08-needs-expr.C create mode 100644 gcc/testsuite/g++.dg/coroutines/co-yield-syntax-09-lambda-auto.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-builtins.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-gro.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-promise-yield.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-ret-value.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-ret-void.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-ueh-1.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-ueh-2.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-ueh-3.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-missing-ueh.h create mode 100644 gcc/testsuite/g++.dg/coroutines/coro-pre-proc.C create mode 100644 gcc/testsuite/g++.dg/coroutines/coro.h create mode 100644 gcc/testsuite/g++.dg/coroutines/coro1-ret-int-yield-int.h copy gcc/testsuite/g++.dg/{tm/tm.exp => coroutines/coroutines.exp} (52%) create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/alloc-00-gro-on-alloc-fail.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/alloc-01-overload-newdel.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/call-00-co-aw-arg.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/call-01-multiple-co-aw.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/call-02-temp-co-aw.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/call-03-temp-ref-co-aw.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/class-00-co-ret.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/class-01-co-ret-parm.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/class-02-templ-parm.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/class-03-operator-templ-parm.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/class-04-lambda-1.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/class-05-lambda-capture [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/class-06-lambda-capture-ref.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-00-trivial.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-01-with-value.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-02-xform.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-03-rhs-op.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-04-control-flow.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-05-loop.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-06-ovl.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-07-tmpl.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-08-cascade.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-09-pair.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-10-template-fn-arg.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-11-forwarding.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-12-operator-2.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-await-13-return-ref.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-00-void-return-i [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-01-void-return-i [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-03-different-GRO-type.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-04-GRO-nontriv.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-05-return-value.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-06-template-prom [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-07-void-cast-expr.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-08-template-cast-ret.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-09-bool-await-susp.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-10-expression-ev [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-11-co-ret-co-await.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-12-co-ret-fun-co [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-13-template-2.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-ret-14-template-3.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-00-triv.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-01-multi.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-02-loop.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-03-tmpl.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-04-complex-loc [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-05-co-aw.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-06-fun-parm.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-07-template-fn [...] create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-08-more-refs.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/co-yield-09-more-templ-refs.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/exceptions-test-0.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/func-params-00.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/func-params-01.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/func-params-02.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/func-params-03.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/func-params-04.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/func-params-05.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/func-params-06.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-00-co-ret.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-01-co-ret-parm.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-02-co-yield-values.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-03-auto-parm-1.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-04-templ-parm.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-05-capture-copy-local.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-06-multi-capture.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-07-multi-yield.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/lambda-08-co-ret-parm-ref.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/local-var-0.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/local-var-1.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/local-var-2.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/local-var-3.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/local-var-4.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/mid-suspend-destruction-0.C create mode 100644 gcc/testsuite/g++.dg/coroutines/torture/pr92933.C create mode 100644 libstdc++-v3/include/std/coroutine