-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Unwinding intrinsics use non-unwinding ABI #104451
Copy link
Copy link
Closed
Labels
A-intrinsicsArea: IntrinsicsArea: IntrinsicsA-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsC-bugCategory: This is a bug.Category: This is a bug.I-unsoundIssue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/SoundnessIssue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness
Metadata
Metadata
Assignees
Labels
A-intrinsicsArea: IntrinsicsArea: IntrinsicsA-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsC-bugCategory: This is a bug.Category: This is a bug.I-unsoundIssue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/SoundnessIssue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness
Type
Fields
Give feedbackNo fields configured for issues without a type.
There are intrinsics like
assert_inhabited, which can unwind, but userust-intrinsicABI that never unwinds:rust/compiler/rustc_middle/src/ty/layout.rs
Lines 1091 to 1093 in 6d651a2
An example demonstrating the issue. The argument passed to function
fis never dropped, whenassert_inhabitedunwinds: