public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure
@ 2020-06-03 16:00 bruck.michael at gmail dot com
2020-06-04 19:54 ` [Bug c++/95505] " iains at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: bruck.michael at gmail dot com @ 2020-06-03 16:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
Bug ID: 95505
Summary: [coroutines] ICE assert with
get_return_object_on_allocation_failure
Product: gcc
Version: 10.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: bruck.michael at gmail dot com
Target Milestone: ---
https://gcc.godbolt.org/z/2LXQ2c
#include <coroutine>
struct dummy
{
struct promise_type
{
dummy get_return_object() const noexcept { return {}; }
static dummy get_return_object_on_allocation_failure() noexcept {
return {}; }
std::suspend_always initial_suspend() const noexcept { return {}; }
std::suspend_never final_suspend() const noexcept { return {}; }
void return_void() const noexcept {}
void unhandled_exception() const noexcept {}
};
};
dummy foo()
{
co_return;
}
int main() {}
----
source>: In function 'dummy foo()':
<source>:20:1: internal compiler error: tree check: expected call_expr, have
error_mark in morph_fn_to_coro, at cp/coroutines.cc:4050
20 | }
| ^
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/95505] [coroutines] ICE assert with get_return_object_on_allocation_failure
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
@ 2020-06-04 19:54 ` iains at gcc dot gnu.org
2020-06-20 15:14 ` cvs-commit at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: iains at gcc dot gnu.org @ 2020-06-04 19:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
Iain Sandoe <iains at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-on-valid-code
Target Milestone|--- |10.2
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Last reconfirmed| |2020-06-04
--- Comment #1 from Iain Sandoe <iains at gcc dot gnu.org> ---
thanks for the report.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/95505] [coroutines] ICE assert with get_return_object_on_allocation_failure
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
2020-06-04 19:54 ` [Bug c++/95505] " iains at gcc dot gnu.org
@ 2020-06-20 15:14 ` cvs-commit at gcc dot gnu.org
2020-06-20 15:40 ` iains at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-06-20 15:14 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
--- Comment #2 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:445d8da5fbd10e32f8ea470bd9ac02faba8fd718
commit r11-1572-g445d8da5fbd10e32f8ea470bd9ac02faba8fd718
Author: Iain Sandoe <iain@sandoe.co.uk>
Date: Sat Jun 20 14:01:21 2020 +0100
coroutines: Update handling and failure for g-r-o-o-a-f [PR95505]
The actual issue is that (in the testcase) std::nothrow is not
available. So update the handling of the get-return-on-alloc-fail
to include the possibility that std::nothrow might not be
available.
gcc/cp/ChangeLog:
PR c++/95505
* coroutines.cc (morph_fn_to_coro): Update handling of
get-return-object-on-allocation-fail and diagnose missing
std::nothrow.
gcc/testsuite/ChangeLog:
PR c++/95505
* g++.dg/coroutines/pr95505.C: New test.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/95505] [coroutines] ICE assert with get_return_object_on_allocation_failure
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
2020-06-04 19:54 ` [Bug c++/95505] " iains at gcc dot gnu.org
2020-06-20 15:14 ` cvs-commit at gcc dot gnu.org
@ 2020-06-20 15:40 ` iains at gcc dot gnu.org
2020-06-21 19:18 ` cvs-commit at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: iains at gcc dot gnu.org @ 2020-06-20 15:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
--- Comment #3 from Iain Sandoe <iains at gcc dot gnu.org> ---
we're also discussing whether there's a good way to make this available
automatically.
clang's current implementation includes <new> unconditionally, which is a
possible solution - I'm not thrilled about blanket inclusion of other library
headers (especially when they are not actually directly used by the including
one).
It's a somewhat odd situation - neither <coroutine> nor (quite likely) the
user's code necessarily overly needs "<new>" .. it's an indirect requirement.
So another possibility is to make the std::no throw_t type available and just
construct a temporary object of that type when doing the lookup.
So the ICE is fixed by diagnosing the issue, and making things 'easier' is on
the TODO (but not part of this PR).
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/95505] [coroutines] ICE assert with get_return_object_on_allocation_failure
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
` (2 preceding siblings ...)
2020-06-20 15:40 ` iains at gcc dot gnu.org
@ 2020-06-21 19:18 ` cvs-commit at gcc dot gnu.org
2020-06-21 19:52 ` iains at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-06-21 19:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Iain D Sandoe
<iains@gcc.gnu.org>:
https://gcc.gnu.org/g:a59a15bcd27fa626b2b0912a1d7abd6df4f3d6cf
commit r10-8334-ga59a15bcd27fa626b2b0912a1d7abd6df4f3d6cf
Author: Iain Sandoe <iain@sandoe.co.uk>
Date: Sun Jun 21 19:11:23 2020 +0100
coroutines: Update handling and failure for g-r-o-o-a-f [PR95505]
The actual issue is that (in the testcase) std::nothrow is not
available. So update the handling of the get-return-on-alloc-fail
to include the possibility that std::nothrow might not be
available.
gcc/cp/ChangeLog:
PR c++/95505
* coroutines.cc (morph_fn_to_coro): Update handling of
get-return-object-on-allocation-fail and diagnose missing
std::nothrow.
gcc/testsuite/ChangeLog:
PR c++/95505
* g++.dg/coroutines/pr95505.C: New test.
(cherry picked from commit 445d8da5fbd10e32f8ea470bd9ac02faba8fd718)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/95505] [coroutines] ICE assert with get_return_object_on_allocation_failure
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
` (3 preceding siblings ...)
2020-06-21 19:18 ` cvs-commit at gcc dot gnu.org
@ 2020-06-21 19:52 ` iains at gcc dot gnu.org
2020-06-27 10:45 ` bruck.michael at gmail dot com
2020-06-27 10:50 ` iains at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: iains at gcc dot gnu.org @ 2020-06-21 19:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
Iain Sandoe <iains at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #5 from Iain Sandoe <iains at gcc dot gnu.org> ---
fixed for master and 10.2.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/95505] [coroutines] ICE assert with get_return_object_on_allocation_failure
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
` (4 preceding siblings ...)
2020-06-21 19:52 ` iains at gcc dot gnu.org
@ 2020-06-27 10:45 ` bruck.michael at gmail dot com
2020-06-27 10:50 ` iains at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: bruck.michael at gmail dot com @ 2020-06-27 10:45 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
--- Comment #6 from Michael Bruck <bruck.michael at gmail dot com> ---
Is it possible to point the user to include <new> here like other parts of gcc
do for standard library functions?
i.e. name-lookup.c missing_std_header
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/95505] [coroutines] ICE assert with get_return_object_on_allocation_failure
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
` (5 preceding siblings ...)
2020-06-27 10:45 ` bruck.michael at gmail dot com
@ 2020-06-27 10:50 ` iains at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: iains at gcc dot gnu.org @ 2020-06-27 10:50 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
--- Comment #7 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Michael Bruck from comment #6)
> Is it possible to point the user to include <new> here like other parts of
> gcc do for standard library functions?
> i.e. name-lookup.c missing_std_header
That's also a possibility (we do that for a missing <coroutine> include
already).
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-06-27 10:50 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-03 16:00 [Bug c++/95505] New: [coroutines] ICE assert with get_return_object_on_allocation_failure bruck.michael at gmail dot com
2020-06-04 19:54 ` [Bug c++/95505] " iains at gcc dot gnu.org
2020-06-20 15:14 ` cvs-commit at gcc dot gnu.org
2020-06-20 15:40 ` iains at gcc dot gnu.org
2020-06-21 19:18 ` cvs-commit at gcc dot gnu.org
2020-06-21 19:52 ` iains at gcc dot gnu.org
2020-06-27 10:45 ` bruck.michael at gmail dot com
2020-06-27 10:50 ` 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).