https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95103
--- Comment #2 from Stephan Bergmann <sbergman at redhat dot com> --- (In reply to Richard Biener from comment #1) > Does it work placing the initial part of the function in a separate { }? Yes, > @@ -14,11 +14,13 @@ > return true; > } > void f3() { > + { > std::vector<S> v; > for (int i = 0; i != 2; ++i) { > if (!f2("xx")) f1(); > v.push_back(0); > } > + } > std::jmp_buf b; > setjmp(b); > } stops the warning for the reproducer.