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.

Reply via email to