https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112909
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Reduced testcase:
struct machine_thread_all_state {
int set;
} _hurd_setup_sighandler_state;
int _hurd_setup_sighandler_ss_0;
struct {
int ctx;
} *_hurd_setup_sighandler_stackframe;
void _setjmp();
void __thread_get_state();
int machine_get_basic_state(struct machine_thread_all_state *state) {
if (state->set)
__thread_get_state();
return 1;
}
int *_hurd_setup_sighandler() {
int *scp;
if (_hurd_setup_sighandler_ss_0) {
_setjmp();
_hurd_setup_sighandler_state.set |= 5;
}
machine_get_basic_state(&_hurd_setup_sighandler_state);
scp = &_hurd_setup_sighandler_stackframe->ctx;
_setjmp();
return scp;
}