https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95103
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unknown |10.1.0 Keywords| |diagnostic --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Likely because of the std::vector<S> DTOR invocation which has to access 'v' which is not declared volatile but still "live" across the setjmp. Does it work placing the initial part of the function in a separate { }?