Copyedits to FFI and unwinding section

These are minor changes that make the text flow better to me.
pull/396/head
Tyler Mandry 2 years ago committed by GitHub
parent 960d610e7f
commit 94bb6a629b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -722,16 +722,19 @@ No `transmute` required!
## FFI and unwinding
Its important to be mindful of unwinding when working with FFI. Each
non-`Rust` ABI comes in two variants, one with `-unwind` suffix and one without. If
you expect Rust `panic`s or foreign (e.g. C++) exceptions to cross an FFI
boundary, that boundary must use the appropriate `-unwind` ABI string (note
that compiling with `panic=abort` will still cause `panic!` to immediately
abort the process, regardless of which ABI is specified by the function that
`panic`s).
ABI comes in two variants, one with `-unwind` suffix and one without (except
the `Rust` ABI, which always permits unwinding).
If you expect Rust `panic`s or foreign (e.g. C++) exceptions to cross an FFI
boundary, that boundary must use the appropriate `-unwind` ABI string.
Conversely, if you do not expect unwinding to cross an ABI boundary, use one of
the non-`unwind` ABI strings (other than `Rust`, which always permits
unwinding). If an unwinding operation does encounter an ABI boundary that is
the non-`unwind` ABI strings.
> Note: Compiling with `panic=abort` will still cause `panic!` to immediately
abort the process, regardless of which ABI is specified by the function that
`panic`s.
If an unwinding operation does encounter an ABI boundary that is
not permitted to unwind, the behavior depends on the source of the unwinding
(Rust `panic` or a foreign exception):

Loading…
Cancel
Save