{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":176542129,"defaultBranch":"master","name":"gcc-git","ownerLogin":"iains","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-03-19T15:23:55.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4039407?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1721897561.0","currentOid":""},"activityList":{"items":[{"before":"79c9fede52286960be23af0dc91bb75c406cbc2f","after":"f6590f7d33db7314b19f1daef190f5fe93434f1c","ref":"refs/heads/master-wip-coro-tests","pushedAt":"2024-09-18T20:12:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"testsuite, c++, coroutines: Misc tests for open PRs","shortMessageHtmlLink":"testsuite, c++, coroutines: Misc tests for open PRs"}},{"before":"79415e9a4ac01cc9921388fe6b13710ee506cf64","after":"d4ab04e0c118200c669f4490a011d119aaf5f196","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-09-18T20:12:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Dump coroutine transforms.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (debug_tree):\n\t(coro_dump_frame):\n\t(dump_record_type):\n\t(coro_maybe_dump_initial_function):\n\t(coro_maybe_dump_ramp):\n\t(coro_maybe_dump_transformed_functions):\n\t(morph_fn_to_coro):\n\t* cp-objcp-common.cc (cp_register_dumps):\n\t* cp-tree.h:\n\t* cxx-pretty-print.cc (cxx_pretty_printer::expression):\n\t(cxx_pretty_printer::statement):\n\ngcc/ChangeLog:\n\n\t* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP):","shortMessageHtmlLink":"c++, coroutines: Dump coroutine transforms."}},{"before":"4e611f1154024a1ed4e981580c653100c758acb9","after":"743547b6d41bd6fa34c6ed2c00746df9680594f5","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-09-18T20:11:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Use finish_if_stmt in a missed case.\n\nJust shorter code.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc\n\t(cp_coroutine_transform::wrap_original_function_body): Use\n\tfinish_if_stmt instead of manually applying the same process.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Use finish_if_stmt in a missed case."}},{"before":"32e4e796cefa88321b68ae1e43a7169ad2e317ad","after":"4e611f1154024a1ed4e981580c653100c758acb9","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-09-07T08:40:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Fix handling of bool await_suspend() [PR115905].\n\nAs noted in the PR the action of the existing implementation was to\ntreat a false value from await_suspend () as equivalent to \"do not\nsuspend\". Actually it needs to be the equivalent of \"resume\" - and\nwe need to restart the dispatcher - since the await_suspend() body\ncould have already resumed the coroutine.\nSee also https://github.com/cplusplus/CWG/issues/601 (NAD) for more\ndiscussion.\n\nSince we need to amend the await expansion and the actor build, take\nthe opportunity to clean up and modernise the code there. Note that\nwe need to make the jump back to the dispatcher without any scope\nexit cleanups (so we have to use the .CO_SUSPN IFN to do this).\n\n\tPR c++/115905\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (struct coro_aw_data): Add a member for the\n\trestart dispatch label.\n\t(expand_one_await_expression): Rework to modernise and to\n\thandle the boolean await_suspend() case.\n\t(build_actor_fn): Rework the dispatcher and allow for a jump\n\tback to the dispatcher.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/torture/pr115905.C: New test.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Fix handling of bool await_suspend() [PR115905]."}},{"before":"03df2393c83a7bd8c112542b930751bc765c31a5","after":"79415e9a4ac01cc9921388fe6b13710ee506cf64","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-09-07T08:40:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Dump coroutine transforms.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (debug_tree):\n\t(coro_dump_frame):\n\t(dump_record_type):\n\t(coro_maybe_dump_initial_function):\n\t(coro_maybe_dump_ramp):\n\t(coro_maybe_dump_transformed_functions):\n\t(morph_fn_to_coro):\n\t* cp-objcp-common.cc (cp_register_dumps):\n\t* cp-tree.h:\n\t* cxx-pretty-print.cc (cxx_pretty_printer::expression):\n\t(cxx_pretty_printer::statement):\n\ngcc/ChangeLog:\n\n\t* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP):","shortMessageHtmlLink":"c++, coroutines: Dump coroutine transforms."}},{"before":"aa5d7c06600e7d27eef75c5cac80eedfead9e656","after":"79c9fede52286960be23af0dc91bb75c406cbc2f","ref":"refs/heads/master-wip-coro-tests","pushedAt":"2024-09-07T08:40:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"testsuite, c++, coroutines: Misc tests for open PRs","shortMessageHtmlLink":"testsuite, c++, coroutines: Misc tests for open PRs"}},{"before":"bac00c34226bac3a95979b21dc2d668a96b14f6e","after":"1fad396dd467326251572811b703e788e62a2588","ref":"refs/heads/master","pushedAt":"2024-09-03T20:06:03.000Z","pushType":"push","commitsCount":90,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"PR116080: Fix test suite checks for musttail\n\nThis is a new attempt to fix PR116080. The previous try was reverted\nbecause it just broke a bunch of tests, hiding the problem.\n\n- musttail behaves differently than tailcall at -O0. Some of the test\nrun at -O0, so add separate effective target tests for musttail.\n- New effective target tests need to use unique file names\nto make dejagnu caching work\n- Change the tests to use new targets\n- Add a external_musttail test to check for target's ability\nto do tail calls between translation units. This covers some powerpc\nABIs.\n\ngcc/testsuite/ChangeLog:\n\n\tPR testsuite/116080\n\t* c-c++-common/musttail1.c: Use musttail target.\n\t* c-c++-common/musttail12.c: Use struct_musttail target.\n\t* c-c++-common/musttail2.c: Use musttail target.\n\t* c-c++-common/musttail3.c: Likewise.\n\t* c-c++-common/musttail4.c: Likewise.\n\t* c-c++-common/musttail7.c: Likewise.\n\t* c-c++-common/musttail8.c: Likewise.\n\t* g++.dg/musttail10.C: Likewise. Replace powerpc checks with\n\texternal_musttail.\n\t* g++.dg/musttail11.C: Use musttail target.\n\t* g++.dg/musttail6.C: Use musttail target. Replace powerpc\n\tchecks with external_musttail.\n\t* g++.dg/musttail9.C: Use musttail target.\n\t* lib/target-supports.exp: Add musttail, struct_musttail,\n\texternal_musttail targets. Remove optimization for musttail.\n\tUse unique file names for musttail.","shortMessageHtmlLink":"PR116080: Fix test suite checks for musttail"}},{"before":"4bf758b212170dba2b5a1881950e949ec4f8a58b","after":"03df2393c83a7bd8c112542b930751bc765c31a5","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-09-02T14:10:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Dump coroutine transforms.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (debug_tree):\n\t(coro_dump_frame):\n\t(dump_record_type):\n\t(coro_maybe_dump_initial_function):\n\t(coro_maybe_dump_ramp):\n\t(coro_maybe_dump_transformed_functions):\n\t(morph_fn_to_coro):\n\t* cp-objcp-common.cc (cp_register_dumps):\n\t* cp-tree.h:\n\t* cxx-pretty-print.cc (cxx_pretty_printer::expression):\n\t(cxx_pretty_printer::statement):\n\ngcc/ChangeLog:\n\n\t* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP):","shortMessageHtmlLink":"c++, coroutines: Dump coroutine transforms."}},{"before":"9b9d82fb5839e9eae02c80950f78128caec909b4","after":"32e4e796cefa88321b68ae1e43a7169ad2e317ad","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-09-02T12:32:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Instrument missing return_void UB.\n\n[dcl.fct.def.coroutine] / 6 Note 1:\n\"If return_void is found, flowing off the end of a coroutine is equivalent\nto a co_return with no operand. Otherwise, flowing off the end of a\ncoroutine results in undefined behavior.\"\n\nHere we implement this as a check for sanitized returns and call the ubsan\ninstrumentation; if that is not enabled we mark this as unreachable (which\nmight trap depending on the target settings).\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc\n\t(cp_coroutine_transform::wrap_original_function_body): Instrument\n\tthe case where control flows off the end of a coroutine and the\n\tuser promise has no return_void entry.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Instrument missing return_void UB."}},{"before":"cf60ba3ba97f1afc0b04ca12764734a327bb6970","after":"4bf758b212170dba2b5a1881950e949ec4f8a58b","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-09-02T12:32:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"libsupc++: Fix handling of m68k extended real in \n\n\tPR libstdc++/116513\n\t* libsupc++/compare (_S_fp_bits) [__fmt == _M68k_80bit]: Shift\n\tpadding out of exponent word.","shortMessageHtmlLink":"libsupc++: Fix handling of m68k extended real in <compare>"}},{"before":"5ad596d832bfcd206ba82d646db9cde0ab954a90","after":"aa5d7c06600e7d27eef75c5cac80eedfead9e656","ref":"refs/heads/master-wip-coro-tests","pushedAt":"2024-09-02T12:32:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"testsuite, c++, coroutines: Misc tests for open PRs","shortMessageHtmlLink":"testsuite, c++, coroutines: Misc tests for open PRs"}},{"before":"7f27d1f1b94843caed557b83715a94cb5b7deb0d","after":"bac00c34226bac3a95979b21dc2d668a96b14f6e","ref":"refs/heads/master","pushedAt":"2024-08-31T22:07:56.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"i386: Support read-modify-write memory operands in STV.\n\nThis patch enables STV when the first operand of a TImode binary\nlogic operand (AND, IOR or XOR) is a memory operand, which is commonly\nthe case with read-modify-write instructions.\n\nA different motivating example from the one given previously is:\n\n__int128 m, p, q;\nvoid foo() {\n m ^= (p & q);\n}\n\nCurrently with -O2 -mavx the RMW instructions are rejected by STV,\nresulting in scalar code:\n\nfoo:\tmovq p(%rip), %rax\n movq p+8(%rip), %rdx\n andq q(%rip), %rax\n andq q+8(%rip), %rdx\n xorq %rax, m(%rip)\n xorq %rdx, m+8(%rip)\n ret\n\nWith this patch they become scalar-to-vector candidates:\n\nfoo:\tvmovdqa p(%rip), %xmm0\n vpand q(%rip), %xmm0, %xmm0\n vpxor m(%rip), %xmm0, %xmm0\n vmovdqa %xmm0, m(%rip)\n ret\n\n2024-08-31 Roger Sayle \n\ngcc/ChangeLog\n\t* config/i386/i386-features.cc (timode_scalar_to_vector_candidate_p):\n\tSupport the first operand of AND, IOR and XOR being MEM_P, i.e. a\n\tread-modify-write insn.\n\ngcc/testsuite/ChangeLog\n\t* gcc.target/i386/movti-2.c: Change dg-options to -Os.\n\t* gcc.target/i386/movti-4.c: Expected output of original movti-2.c.","shortMessageHtmlLink":"i386: Support read-modify-write memory operands in STV."}},{"before":"2bce5d7e8667ad1dd2b6d85ade83ae1cbae54f64","after":"5ad596d832bfcd206ba82d646db9cde0ab954a90","ref":"refs/heads/master-wip-coro-tests","pushedAt":"2024-08-31T19:22:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"testsuite, c++, coroutines: Misc tests for open PRs","shortMessageHtmlLink":"testsuite, c++, coroutines: Misc tests for open PRs"}},{"before":"85d653d7dc1656bfeab549c5f2e7c67e4e347794","after":"cf60ba3ba97f1afc0b04ca12764734a327bb6970","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-08-31T19:22:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Dump coroutine transforms.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (debug_tree):\n\t(coro_dump_frame):\n\t(dump_record_type):\n\t(coro_maybe_dump_initial_function):\n\t(coro_maybe_dump_ramp):\n\t(coro_maybe_dump_transformed_functions):\n\t(morph_fn_to_coro):\n\t* cp-objcp-common.cc (cp_register_dumps):\n\t* cp-tree.h:\n\t* cxx-pretty-print.cc (cxx_pretty_printer::expression):\n\t(cxx_pretty_printer::statement):\n\ngcc/ChangeLog:\n\n\t* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP):","shortMessageHtmlLink":"c++, coroutines: Dump coroutine transforms."}},{"before":"ec39e7c3296d4052e8b221d7b31971a8486ce2b9","after":"9b9d82fb5839e9eae02c80950f78128caec909b4","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-08-31T19:21:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Fix awaiter var creation [PR116506].\n\nAwaiters always need to have a coroutine state frame copy since\nthey persist across potential supensions. It simplifies the later\nanalysis considerably to assign these early which we do when\nbuilding co_await expressions.\n\nThe cleanups in r15-3146-g47dbd69b1, unfortunately elided some of\nprocessing used to cater for cases where the var created from an\nxvalue, or is a pointer/reference type.\n\nCorrected thus.\n\n\tPR c++/116506\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (build_co_await): Ensure that xvalues are\n\tmaterialised. Handle references/pointer values in awaiter\n\taccess expressions.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/pr116506.C: New test.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Fix awaiter var creation [PR116506]."}},{"before":"6bfeba12c86b4d0dae27d99b484f64774dd49398","after":"7f27d1f1b94843caed557b83715a94cb5b7deb0d","ref":"refs/heads/master","pushedAt":"2024-08-31T16:57:01.000Z","pushType":"push","commitsCount":30,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"testsuite, c++, coroutines: Avoid 'unused' warnings [NFC].\n\nThe 'torture' section of the coroutine tests is primarily about checking\ncorrect operation of the generated code. It should, ideally, be possible\nto run this part of the testsuite with '-Wall' and expect no fails. In\nthe case that we wish to test for a specific diagnostic (and that it does\nnot appear over a range of optimisation/debug conditions) then we should\nmake that explict (as done, for example, in pr109867.C).\n\nThe tests amended here have warnings because of unused entities; in many\ncases those are relevant to the test, and so we just mark them with\n__attribute__((__unused__)).\n\nWe amend the debug output in coro.h to avoid similar warnings when print\noutput is disabled (the default).\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/coro.h: Use a variadic macro for PRINTF to\n\tavoid unused warnings when output is disabled.\n\t* g++.dg/coroutines/torture/co-await-04-control-flow.C: Avoid\n\tunused warnings.\n\t* g++.dg/coroutines/torture/co-ret-13-template-2.C: Likewise.\n\t* g++.dg/coroutines/torture/exceptions-test-01-n4849-a.C: Likewise.\n\t* g++.dg/coroutines/torture/local-var-04-hiding-nested-scopes.C:\n\tLikewise.\n\t* g++.dg/coroutines/torture/pr109867.C: Likewise.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"testsuite, c++, coroutines: Avoid 'unused' warnings [NFC]."}},{"before":"8d6d6c864442a1cc987b3e6bcb1d903ceb975e4a","after":"6bfeba12c86b4d0dae27d99b484f64774dd49398","ref":"refs/heads/master","pushedAt":"2024-08-30T19:22:31.000Z","pushType":"push","commitsCount":97,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"Fortran: fix ICE with use with rename of namelist member [PR116530]\n\ngcc/fortran/ChangeLog:\n\n\tPR fortran/116530\n\t* trans-io.cc (transfer_namelist_element): Prevent NULL pointer\n\tdereference.\n\ngcc/testsuite/ChangeLog:\n\n\tPR fortran/116530\n\t* gfortran.dg/use_rename_12.f90: New test.","shortMessageHtmlLink":"Fortran: fix ICE with use with rename of namelist member [PR116530]"}},{"before":"4766829b5d5bb4f9655856a0972fd97f2b9b4393","after":"ec39e7c3296d4052e8b221d7b31971a8486ce2b9","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-08-29T22:59:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Fix awaiter var creation [PR116506].\n\nAwaiters always need to have a coroutine state frame copy since\nthey persist across potential supensions. It simplifies the later\nanalysis considerably to assign these early which we do when\nbuilding co_await expressions.\n\nThe cleanups in r15-3146-g47dbd69b1, unfortunately elided some of\nprocessing used to cater for cases where the var created from an\nxvalue, or is a pointer/reference type.\n\nCorrected thus.\n\n\tPR c++/116506\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (build_co_await): Ensure that xvalues are\n\tmaterialised. Handle references/pointer values in awaiter\n\taccess expressions.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/pr116506.C: New test.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Fix awaiter var creation [PR116506]."}},{"before":"6eb8bc58e5037dca554b9844a7cca3006f15cefd","after":"4766829b5d5bb4f9655856a0972fd97f2b9b4393","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-08-29T11:33:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Fix awaiter var creation [PR116506].\n\nAwaiters always need to have a coroutine state frame copy since\nthey persist across potential supensions. It simplifies the later\nanalysis considerably to assign these early which we do when\nbuilding co_await expressions.\n\nThe cleanups in r15-3146-g47dbd69b1, unfortunately elided some of\nprocessing used to cater for cases where the var created from an\nxvalue, or is a pointer/reference type.\n\nCorrected thus.\n\n\tPR c++/116506\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (build_co_await): Ensure that xvalues are\n\tmaterialised. Handle references/pointer values in awaiter\n\taccess expressions.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/pr116506.C: New test.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Fix awaiter var creation [PR116506]."}},{"before":"b588215e48e92973b9993c02ae70ad8b35eb40e4","after":"2bce5d7e8667ad1dd2b6d85ade83ae1cbae54f64","ref":"refs/heads/master-wip-coro-tests","pushedAt":"2024-08-29T10:47:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"testsuite, c++, coroutines: Misc tests for open PRs","shortMessageHtmlLink":"testsuite, c++, coroutines: Misc tests for open PRs"}},{"before":"925f35f158c4e67e258e590486321c6e70f146aa","after":"85d653d7dc1656bfeab549c5f2e7c67e4e347794","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-08-29T10:47:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Dump coroutine transforms.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (debug_tree):\n\t(coro_dump_frame):\n\t(dump_record_type):\n\t(coro_maybe_dump_initial_function):\n\t(coro_maybe_dump_ramp):\n\t(coro_maybe_dump_transformed_functions):\n\t(morph_fn_to_coro):\n\t* cp-objcp-common.cc (cp_register_dumps):\n\t* cp-tree.h:\n\t* cxx-pretty-print.cc (cxx_pretty_printer::expression):\n\t(cxx_pretty_printer::statement):\n\ngcc/ChangeLog:\n\n\t* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP):","shortMessageHtmlLink":"c++, coroutines: Dump coroutine transforms."}},{"before":"283fa3ce33ed417642039a3345020e101977900e","after":"6eb8bc58e5037dca554b9844a7cca3006f15cefd","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-08-29T10:46:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Fix awaiter var creation [PR116506].\n\nAwaiters always need to have a coroutine state frame copy since\nthey persist across potential supensions. It simplifies the later\nanalysis considerably to assign these early which we do when\nbuilding co_await expressions.\n\nThe cleanups in r15-3146-g47dbd69b1, unfortunately elided some of\nprocessing used to cater for cases where the var created from an\nxvalue, or is a pointer/reference type.\n\nCorrected thus.\n\n\tPR c++/116506\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (build_co_await): Ensure that xvalues are\n\tmaterialised. Handle references/pointer values in awaiter\n\taccess expressions.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/pr116506.C: New test.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Fix awaiter var creation [PR116506]."}},{"before":"96862b391e4ba26d553c229aa35c25661f40c803","after":"283fa3ce33ed417642039a3345020e101977900e","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-08-27T19:15:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Rework the ramp codegen.\n\nNOw that we have separated the codegen of the ramp, actor and\ndestory functions, we no longer need to manage the scopes for\nvariables manually.\n\nThis introduces a helper function that allows us to build a\nlocal var with a DECL_VALUE_EXPR that relates to the coroutine\nstate frame entry.\n\nThis fixes a latent issue where we would generate guard vars\nwhen exceptions were disabled.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (coro_build_artificial_var_with_dve): New.\n\t(analyze_fn_parms): Ensure that frame entries cannot clash\n\twith local variables.\n\t(build_coroutine_frame_delete_expr): Amend comment.\n\t(cp_coroutine_transform::build_ramp_function): Rework to\n\tavoid manual management of variables and scopes.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Rework the ramp codegen."}},{"before":"0959ff51add0ac99d2f0db0f8e5cfe21482724d8","after":"925f35f158c4e67e258e590486321c6e70f146aa","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-08-27T15:04:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Dump coroutine transforms.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (debug_tree):\n\t(coro_dump_frame):\n\t(dump_record_type):\n\t(coro_maybe_dump_initial_function):\n\t(coro_maybe_dump_ramp):\n\t(coro_maybe_dump_transformed_functions):\n\t(morph_fn_to_coro):\n\t* cp-objcp-common.cc (cp_register_dumps):\n\t* cp-tree.h:\n\t* cxx-pretty-print.cc (cxx_pretty_printer::expression):\n\t(cxx_pretty_printer::statement):\n\ngcc/ChangeLog:\n\n\t* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP):","shortMessageHtmlLink":"c++, coroutines: Dump coroutine transforms."}},{"before":"6ed115c5492695df0ded29acb35726e7f2cee621","after":"96862b391e4ba26d553c229aa35c25661f40c803","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-08-27T15:03:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++/coroutines: fix actor cases not being added to the current switch [PR109867]\n\nPreviously, we were building and inserting case_labels manually, which\nlead to them not being added into the currently running switch via\nc_add_case_label. This lead to false diagnostics that the user could\nnot act on.\n\nPR c++/109867 - -Wswitch-default reports missing default in coroutine\n\ngcc/cp/ChangeLog:\n\n\tPR c++/109867\n\t* coroutines.cc (expand_one_await_expression): Replace uses of\n\tbuild_case_label with finish_case_label.\n\t(build_actor_fn): Ditto. Also adjust current_function_decl.\n\t(create_anon_label_with_ctx): Remove now-unused function.\n\ngcc/testsuite/ChangeLog:\n\n\tPR c++/109867\n\t* g++.dg/coroutines/torture/pr109867.C: New test.\n\nReviewed-by: Iain Sandoe ","shortMessageHtmlLink":"c++/coroutines: fix actor cases not being added to the current switch…"}},{"before":"f23d4cea8682d84fd533a8ca57b099311e056ce0","after":"8d6d6c864442a1cc987b3e6bcb1d903ceb975e4a","ref":"refs/heads/master","pushedAt":"2024-08-27T07:42:23.000Z","pushType":"push","commitsCount":54,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: The frame pointer is used in the helpers [PR116482].\n\nWe have a bogus warning about the coroutine state frame pointers\nbeing apparently unused in the resume and destroy functions. Fixed\nby making the parameters DECL_ARTIFICIAL.\n\n\tPR c++/116482\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc\n\t(coro_build_actor_or_destroy_function): Make the parameter\n\tdecls DECL_ARTIFICIAL.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/pr116482.C: New test.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: The frame pointer is used in the helpers [PR116482]."}},{"before":"c442a9b78bdbebdbcb4a8f91bc36961eb732fbdf","after":"f23d4cea8682d84fd533a8ca57b099311e056ce0","ref":"refs/heads/master","pushedAt":"2024-08-26T14:16:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"Daily bump.","shortMessageHtmlLink":"Daily bump."}},{"before":"ee755fad327bbb5f14659671ad43375d8fc3bc45","after":"0959ff51add0ac99d2f0db0f8e5cfe21482724d8","ref":"refs/heads/master-wip-coro-dbg","pushedAt":"2024-08-25T10:04:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Dump coroutine transforms.\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc (debug_tree):\n\t(coro_dump_frame):\n\t(dump_record_type):\n\t(coro_maybe_dump_initial_function):\n\t(coro_maybe_dump_ramp):\n\t(coro_maybe_dump_transformed_functions):\n\t(morph_fn_to_coro):\n\t* cp-objcp-common.cc (cp_register_dumps):\n\t* cp-tree.h:\n\t* cxx-pretty-print.cc (cxx_pretty_printer::expression):\n\t(cxx_pretty_printer::statement):\n\ngcc/ChangeLog:\n\n\t* dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP):","shortMessageHtmlLink":"c++, coroutines: Dump coroutine transforms."}},{"before":"cc73ac9c9fd178547ae8b96176f0911af4072ef2","after":"6ed115c5492695df0ded29acb35726e7f2cee621","ref":"refs/heads/master-wip-coro-WIP","pushedAt":"2024-08-24T19:04:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++/coroutines: fix actor cases not being added to the current switch [PR109867]\n\nPreviously, we were building and inserting case_labels manually, which\nlead to them not being added into the currently running switch via\nc_add_case_label. This lead to false diagnostics that the user could\nnot act on.\n\nPR c++/109867 - -Wswitch-default reports missing default in coroutine\n\ngcc/cp/ChangeLog:\n\n\tPR c++/109867\n\t* coroutines.cc (expand_one_await_expression): Replace uses of\n\tbuild_case_label with finish_case_label.\n\t(build_actor_fn): Ditto. Also adjust current_function_decl.\n\t(create_anon_label_with_ctx): Remove now-unused function.\n\ngcc/testsuite/ChangeLog:\n\n\tPR c++/109867\n\t* g++.dg/coroutines/torture/pr109867.C: New test.\n\nReviewed-by: Iain Sandoe ","shortMessageHtmlLink":"c++/coroutines: fix actor cases not being added to the current switch…"}},{"before":"a183b255be8ec8f434c3c39f3f4e01d6bd5566f8","after":"c442a9b78bdbebdbcb4a8f91bc36961eb732fbdf","ref":"refs/heads/master","pushedAt":"2024-08-24T19:03:39.000Z","pushType":"push","commitsCount":175,"pusher":{"login":"iains","name":"Iain Sandoe","path":"/iains","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4039407?s=80&v=4"},"commit":{"message":"c++, coroutines: Look through initial_await target exprs [PR110635].\n\nIn the case that the initial awaiter returns an object, the initial await\ncan be a target expression and we need to look at its initializer to cast\nthe await_resume() to void and to wrap in a compound expression that sets\nthe initial_await_resume_called flag.\n\n\tPR c++/110635\n\ngcc/cp/ChangeLog:\n\n\t* coroutines.cc\n\t(cp_coroutine_transform::wrap_original_function_body): Look through\n\tinitial await target expressions to find the actual co_await_expr\n\tthat we need to update.\n\ngcc/testsuite/ChangeLog:\n\n\t* g++.dg/coroutines/pr110635.C: New test.\n\nSigned-off-by: Iain Sandoe ","shortMessageHtmlLink":"c++, coroutines: Look through initial_await target exprs [PR110635]."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEuh90XQA","startCursor":null,"endCursor":null}},"title":"Activity · iains/gcc-git"}