https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106973
Bug ID: 106973
Summary: coroutine generator and setjmp
Product: gcc
Version: 12.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: woohp135 at gmail dot com
Target Milestone: ---
#include "generator.hpp"
#include <setjmp.h>
using namespace std;
cppcoro::generator<int> foo()
{
jmp_buf env;
setjmp(env);
co_yield 1;
}
int main()
{
return 0;
}
The generator.hpp file is from
https://github.com/lewissbaker/cppcoro/blob/master/include/cppcoro/generator.hpp
I'm getting this error:
> g++ -std=c++2a -Wall -Wextra -freport-bug foo.cpp
during GIMPLE pass: coro-early-expand-ifns
foo.cpp: In function ‘void foo(foo()::_Z3foov.Frame*)’:
foo.cpp:6:25: internal compiler error: Segmentation fault
6 | cppcoro::generator<int> foo()
| ^~~
0x19eab38 internal_error(char const*, ...)
???:0
I believe it is the setjmp that is causing the issue. This code compiles fine
on clang.