public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/94682] New: coroutines: Promise param preview should get a reference to *this. @ 2020-04-21 8:54 iains at gcc dot gnu.org 2020-04-21 8:54 ` [Bug c++/94682] " iains at gcc dot gnu.org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: iains at gcc dot gnu.org @ 2020-04-21 8:54 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94682 Bug ID: 94682 Summary: coroutines: Promise param preview should get a reference to *this. 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 48322 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48322&action=edit fix being tested. Reported independently by Michał Dominiak and Lewis Baker. The static assert fails in the following code, because we should be passing a reference to *this but we're passing this. struct promise; struct future { using promise_type = promise; }; struct promise { template<typename Class> promise(Class &,int) { static_assert(!std::is_pointer<Class>::value, ""); } coro::suspend_never initial_suspend() { return {}; } coro::suspend_never final_suspend() { return {}; } future get_return_object() { return {}; } void return_value(int) {} void unhandled_exception() {} }; struct bar { future foo(int param) { co_return 0; } }; ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/94682] coroutines: Promise param preview should get a reference to *this. 2020-04-21 8:54 [Bug c++/94682] New: coroutines: Promise param preview should get a reference to *this iains at gcc dot gnu.org @ 2020-04-21 8:54 ` iains at gcc dot gnu.org 2020-04-22 9:24 ` cvs-commit at gcc dot gnu.org 2020-04-22 9:35 ` iains at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: iains at gcc dot gnu.org @ 2020-04-21 8:54 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94682 Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |iains at gcc dot gnu.org Ever confirmed|0 |1 Keywords| |wrong-code Target Milestone|--- |10.0 Status|UNCONFIRMED |NEW Last reconfirmed| |2020-04-21 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/94682] coroutines: Promise param preview should get a reference to *this. 2020-04-21 8:54 [Bug c++/94682] New: coroutines: Promise param preview should get a reference to *this iains at gcc dot gnu.org 2020-04-21 8:54 ` [Bug c++/94682] " iains at gcc dot gnu.org @ 2020-04-22 9:24 ` cvs-commit at gcc dot gnu.org 2020-04-22 9:35 ` iains at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2020-04-22 9:24 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94682 --- Comment #1 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:38644f81babd04820daa9d622ea75eb68c066c86 commit r10-7868-g38644f81babd04820daa9d622ea75eb68c066c86 Author: Iain Sandoe <iain@sandoe.co.uk> Date: Wed Apr 22 09:49:20 2020 +0100 coroutines: Pass class reference to promise param preview [PR94682] As reported in the PR, per [dcl.fct.def.coroutine]/4 we should be passing a reference to the object to the promise parameter preview, and we are currently passing a pointer (this). Amend to pass the reference. gcc/cp/ChangeLog: 2020-04-22 Iain Sandoe <iain@sandoe.co.uk> PR c++/94682 * coroutines.cc (struct param_info): Add a field to note that the param is 'this'. (morph_fn_to_coro): Convert this to a reference before using it in the promise parameter preview. gcc/testsuite/ChangeLog: 2020-04-22 Iain Sandoe <iain@sandoe.co.uk> PR c++/94682 * g++.dg/coroutines/pr94682-preview-this.C: New test. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/94682] coroutines: Promise param preview should get a reference to *this. 2020-04-21 8:54 [Bug c++/94682] New: coroutines: Promise param preview should get a reference to *this iains at gcc dot gnu.org 2020-04-21 8:54 ` [Bug c++/94682] " iains at gcc dot gnu.org 2020-04-22 9:24 ` cvs-commit at gcc dot gnu.org @ 2020-04-22 9:35 ` iains at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: iains at gcc dot gnu.org @ 2020-04-22 9:35 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94682 Iain Sandoe <iains at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #2 from Iain Sandoe <iains at gcc dot gnu.org> --- fixed. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-04-22 9:35 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-04-21 8:54 [Bug c++/94682] New: coroutines: Promise param preview should get a reference to *this iains at gcc dot gnu.org 2020-04-21 8:54 ` [Bug c++/94682] " iains at gcc dot gnu.org 2020-04-22 9:24 ` cvs-commit at gcc dot gnu.org 2020-04-22 9:35 ` 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).