about summary refs log tree commit diff
path: root/compiler/rustc_plugin_impl/src
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2021-08-07 01:46:35 +0900
committerGitHub <noreply@github.com>2021-08-07 01:46:35 +0900
commitc5202b3779eabf0421dc9c162eb5a21ce45a0698 (patch)
treea4cbcc14386d994f48a319c1f9f99c133e39ed95 /compiler/rustc_plugin_impl/src
parenta4262cc9841d91d48ef994b36eab323e615a7083 (diff)
parent7520ea9046de23d04829db40687a7fdde5034530 (diff)
downloadrust-c5202b3779eabf0421dc9c162eb5a21ce45a0698.tar.gz
rust-c5202b3779eabf0421dc9c162eb5a21ce45a0698.zip
Rollup merge of #87787 - hyd-dev:c-unwind, r=RalfJung
Use `C-unwind` ABI for `__rust_start_panic` in `panic_abort`

The function originally has `C` ABI but is called using `C-unwind` ABI in `std`:
https://github.com/rust-lang/rust/blob/d4ad1cfc63ba5824196bfb2370451ddb5af2e020/library/std/src/panicking.rs#L49-L54
Which might be [problematic](https://github.com/rust-lang/miri/pull/1745#discussion_r596096876) and triggers this [Miri error](https://github.com/rust-lang/rust/issues/87778#issuecomment-893306222):
```
error: Undefined Behavior: calling a function with ABI C using caller ABI C-unwind
   --> /home/hyd-dev/.rustup/toolchains/miri/lib/rustlib/src/rust/library/std/src/panicking.rs:672:9
    |
672 |         __rust_start_panic(obj)
    |         ^^^^^^^^^^^^^^^^^^^^^^^ calling a function with ABI C using caller ABI C-unwind
    |
    = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
    = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
```
Changing the ABI of the function to `C-unwind` fixes the error above.
Diffstat (limited to 'compiler/rustc_plugin_impl/src')
0 files changed, 0 insertions, 0 deletions