public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399
@ 2020-04-07 23:31 iains at gcc dot gnu.org
  2020-04-07 23:34 ` [Bug c++/94528] " iains at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: iains at gcc dot gnu.org @ 2020-04-07 23:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94528

            Bug ID: 94528
           Summary: coroutines: ICE building cppcoro in gimplify_expr, at
                    gimplify.c:14399
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: iains at gcc dot gnu.org
  Target Milestone: ---

Created attachment 48237
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48237&action=edit
c-reduced reproducer.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/94528] coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399
  2020-04-07 23:31 [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399 iains at gcc dot gnu.org
@ 2020-04-07 23:34 ` iains at gcc dot gnu.org
  2020-04-07 23:35 ` iains at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: iains at gcc dot gnu.org @ 2020-04-07 23:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94528

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
           Assignee|unassigned at gcc dot gnu.org      |iains at gcc dot gnu.org
   Last reconfirmed|                            |2020-04-07

--- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> ---
Created attachment 48238
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48238&action=edit
Patch being tested

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/94528] coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399
  2020-04-07 23:31 [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399 iains at gcc dot gnu.org
  2020-04-07 23:34 ` [Bug c++/94528] " iains at gcc dot gnu.org
@ 2020-04-07 23:35 ` iains at gcc dot gnu.org
  2020-04-07 23:36 ` iains at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: iains at gcc dot gnu.org @ 2020-04-07 23:35 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94528

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |10.0
           Keywords|                            |ice-on-valid-code

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/94528] coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399
  2020-04-07 23:31 [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399 iains at gcc dot gnu.org
  2020-04-07 23:34 ` [Bug c++/94528] " iains at gcc dot gnu.org
  2020-04-07 23:35 ` iains at gcc dot gnu.org
@ 2020-04-07 23:36 ` iains at gcc dot gnu.org
  2020-04-08 13:34 ` nathan at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: iains at gcc dot gnu.org @ 2020-04-07 23:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94528

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |euloanty at live dot com

--- Comment #2 from Iain Sandoe <iains at gcc dot gnu.org> ---
*** Bug 93343 has been marked as a duplicate of this bug. ***

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/94528] coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399
  2020-04-07 23:31 [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399 iains at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2020-04-07 23:36 ` iains at gcc dot gnu.org
@ 2020-04-08 13:34 ` nathan at gcc dot gnu.org
  2020-04-10 23:42 ` cvs-commit at gcc dot gnu.org
  2020-04-10 23:53 ` iains at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: nathan at gcc dot gnu.org @ 2020-04-08 13:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94528

Nathan Sidwell <nathan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nathan at gcc dot gnu.org

--- Comment #3 from Nathan Sidwell <nathan at gcc dot gnu.org> ---
The patch is ok.  For avoidance of doubt, the 'for now' comment refers to an
issue addressed in a following patch.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/94528] coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399
  2020-04-07 23:31 [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399 iains at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2020-04-08 13:34 ` nathan at gcc dot gnu.org
@ 2020-04-10 23:42 ` cvs-commit at gcc dot gnu.org
  2020-04-10 23:53 ` iains at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-04-10 23:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94528

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Iain D Sandoe <iains@gcc.gnu.org>:

https://gcc.gnu.org/g:0666767eb4cc864f00ba34d97b9d58f8dc650bba

commit r10-7682-g0666767eb4cc864f00ba34d97b9d58f8dc650bba
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Fri Apr 10 20:55:10 2020 +0100

    coroutines: Revise await expansions [PR94528]

    The expansions for await expressions were specific to particular
    cases, this revises it to be more generic.

    a: Revise co_await statement walkers.

    We want to process the co_awaits one statement at a time.
    We also want to be able to determine the insertion points for
    new bind scopes needed to cater for temporaries that are
    captured by reference and have lifetimes that need extension
    to the end of the full expression.  Likewise, the handling of
    captured references in the evaluation of conditions might
    result in the need to make a frame copy.

    This reorganises the statement walking code to make it easier to
    extend for these purposes.

    b: Factor reference-captured temp code.

    We want to be able to use the code that writes a new bind expr
    with vars (and their initializers) from several places, so split
    that out of the maybe_promote_captured_temps() function into a
    new replace_statement_captures ().  Update some comments.

    c: Generalize await statement expansion.

    This revises the expansion to avoid the need to expand conditionally
    on the tree type.  It resolves PR 94528.

    gcc/cp/ChangeLog:

    2020-04-10  Iain Sandoe  <iain@sandoe.co.uk>

            PR c++/94538
            * coroutines.cc (co_await_expander): Remove.
            (expand_one_await_expression): New.
            (process_one_statement): New.
            (await_statement_expander): New.
            (build_actor_fn): Revise to use per-statement expander.
            (struct susp_frame_data): Reorder and comment.
            (register_awaits): Factor code.
            (replace_statement_captures): New, factored from...
            (maybe_promote_captured_temps):.. here.
            (await_statement_walker): Revise to process per statement.
            (morph_fn_to_coro): Use revised susp_frame_data layout.

    gcc/testsuite/ChangeLog:

    2020-04-10  Iain Sandoe  <iain@sandoe.co.uk>

            PR c++/94538
            * g++.dg/coroutines/pr94528.C: New test.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/94528] coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399
  2020-04-07 23:31 [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399 iains at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2020-04-10 23:42 ` cvs-commit at gcc dot gnu.org
@ 2020-04-10 23:53 ` iains at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: iains at gcc dot gnu.org @ 2020-04-10 23:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94528

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #5 from Iain Sandoe <iains at gcc dot gnu.org> ---
so fixed

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-04-10 23:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-07 23:31 [Bug c++/94528] New: coroutines: ICE building cppcoro in gimplify_expr, at gimplify.c:14399 iains at gcc dot gnu.org
2020-04-07 23:34 ` [Bug c++/94528] " iains at gcc dot gnu.org
2020-04-07 23:35 ` iains at gcc dot gnu.org
2020-04-07 23:36 ` iains at gcc dot gnu.org
2020-04-08 13:34 ` nathan at gcc dot gnu.org
2020-04-10 23:42 ` cvs-commit at gcc dot gnu.org
2020-04-10 23:53 ` iains at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).