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.