about summary refs log tree commit diff
path: root/src/test/mir-opt/lower_array_len.array_bound_mut.SimplifyLocals.diff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2021-04-20 20:04:31 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2021-05-07 11:17:44 +0100
commit820123a949705f404ff080759c32dba4a4d89580 (patch)
tree1419277ad2564452e8322b3ffae12fc28f3aefbd /src/test/mir-opt/lower_array_len.array_bound_mut.SimplifyLocals.diff
parent3cba120ba453b5371e53766ec816f016d004ed91 (diff)
downloadrust-820123a949705f404ff080759c32dba4a4d89580.tar.gz
rust-820123a949705f404ff080759c32dba4a4d89580.zip
panic/fork: Command: Do not unwind after fork() in child
Unwinding after fork() in the child is UB on some platforms, because
on those (including musl) malloc can be UB in the child of a
multithreaded program, and unwinding must box for the payload.

Even if it's safe, unwinding past fork() in the child causes whatever
traps the unwind to return twice.  This is very strange and clearly
not desirable.  With the default behaviour of the thread library, this
can even result in a panic in the child being transformed into zero
exit status (ie, success) as seen in the parent!

Fixes #79740.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'src/test/mir-opt/lower_array_len.array_bound_mut.SimplifyLocals.diff')
0 files changed, 0 insertions, 0 deletions