Rollup merge of #140009 - ShE3py:tls-abort, r=thomcc

docs(LocalKey<T>): clarify that T's Drop shouldn't panic

Clarify that should a TLS destructor panics, the process will abort.

Also, an abort may be obfuscated as the process can be terminated with `SIGSEGV` or [`STATUS_STACK_BUFFER_OVERRUN`](https://devblogs.microsoft.com/oldnewthing/20190108-00/?p=100655) (i.e., `SIGABRT` is not guaranteed), so explicitly prints that the process was aborted.

Context:
https://users.rust-lang.org/t/status-stack-buffer-overrun-on-windows-without-any-usage-of-unsafe/128417

``@rustbot`` label -T-compiler
This commit is contained in:
Chris Denton 2025-04-21 15:55:57 +00:00 committed by GitHub
commit 24bd5649b1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 9 additions and 5 deletions

View file

@ -27,6 +27,6 @@ fn main() {
// by QEMU in the stderr whenever a core dump happens. Remove it before the check.
v.strip_suffix("qemu: uncaught target signal 6 (Aborted) - core dumped\n").unwrap_or(v)
})
.map(|v| { v.ends_with("fatal runtime error: drop of the panic payload panicked\n") })
.map(|v| v.ends_with("fatal runtime error: drop of the panic payload panicked, aborting\n"))
.unwrap_or(false));
}