https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93273

            Bug ID: 93273
           Summary: "error: missing definition" and "internal compiler
                    error: verify_ssa failed", in code involving _setjmp
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sbergman at redhat dot com
  Target Milestone: ---

With recent trunk (at g:ddd792fa53345180c782494aa597e438a73b6248):

> $ cat test.cc
> void _setjmp(void *);
> struct S { ~S(); };
> void * (* fn)();
> void f();
> void g() {
>     S s;
>     _setjmp(fn());
>     []{ f(); }();
> }

> $ g++ -c test.cc
> test.cc: In function ‘void g()’:
> test.cc:5:6: error: missing definition
>     5 | void g() {
>       |      ^
> for SSA_NAME: .MEM_22 in statement:
> # .MEM_14(ab) = VDEF <.MEM_22>
> S::~S (&s);
> during GIMPLE pass: ehdisp
> test.cc:5:6: internal compiler error: verify_ssa failed
> 0x11c8802 verify_ssa(bool, bool)
>         ../../src/gcc/tree-ssa.c:1208
> 0xeeef55 execute_function_todo
>         ../../src/gcc/passes.c:1990
> 0xeefc8c do_per_function
>         ../../src/gcc/passes.c:1638
> 0xeefc8c execute_todo
>         ../../src/gcc/passes.c:2037
> Please submit a full bug report,
> with preprocessed source if appropriate.
> Please include the complete backtrace with any bug report.
> See <https://gcc.gnu.org/bugs/> for instructions.

If I rename _setjmp to e.g. f2, it compiles fine.

Reply via email to