[Bug c++/95117] New: Segmentation fault with static await_ready() or await_resume()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95117 Bug ID: 95117 Summary: Segmentation fault with static await_ready() or await_resume() Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: oficsu at gmail dot com Target Milestone: --- Created attachment 48527 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48527&action=edit Minimal example The attached archive contains a minimal example and a command that leads to an internal compiler error in GCC 10 and later Also, you can see the error on godbolt for gcc 10.1.0: https://godbolt.org/z/CsJ4nG The same error is reproducing in trunk version from godbolt: https://godbolt.org/z/CsJ4nG Working Draft contains the following definitions: await-ready is the expression e.await_ready(), contextually converted to bool. ... await-suspend is the expression e.await_suspend(h), which shall be a prvalue of type void, bool, or std::coroutine_handle for some type Z. ... await-resume is the expression e.await_resume(). Most likely the definition await_ready() and await_resume() as static is ill-formed and should lead to a compilation error, but not to an segmentation fault. BUT, please note that await-suspend is defined in the same way, but this is compiled fine, so I'm not sure which behavior is right
[Bug c++/93295] ICE in alias_ctad_tweaks
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93295 ofee oficsu changed: What|Removed |Added CC||oficsu at gmail dot com --- Comment #7 from ofee oficsu --- I think there is another example of the same bug. This can be pretty common code in C++20: #include template using p = std::pair; auto x = p{int{}, int{}};
[Bug c/66918] Disable "inline function declared but never defined" warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66918 Ofee Oficsu changed: What|Removed |Added CC||oficsu at gmail dot com --- Comment #11 from Ofee Oficsu --- There's another example. A bit suspicious as it's related to loopholes, but GCC produces too many warning on my example and there's no way to suppress them: https://godbolt.org/z/PbnM8cfc1
[Bug c++/95117] Segmentation fault with static await_ready() or await_resume()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95117 Ofee Oficsu changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #1 from Ofee Oficsu --- There's no ICE since GCC 10.2
[Bug c++/109978] New: ICE in tsubst, at cp/pt.cc:15869: alias template + c array size deduction + lambda
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109978 Bug ID: 109978 Summary: ICE in tsubst, at cp/pt.cc:15869: alias template + c array size deduction + lambda Product: gcc Version: 12.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: oficsu at gmail dot com Target Milestone: --- Created attachment 55162 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55162&action=edit A minimal reproducible example Lambdas in unevaluated contexts combined with an alias template to a c-style array causes ICE when it's used to deduce the size of an array passed to a function template, MRE: template using array = int[N]; template void foo(array&&) {} int main() { foo({1, 2, 3}); } I've used a system GCC to generate the bug report, but other versions (including trunk releases) affected also. See more on Compiler Explorer: https://godbolt.org/z/zW6KETaYn