-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Out-of-stack failure leaks arguments #3555
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I added tests in run-fail/out-of-stack-managed-box.rs and out-of-stack-owned-box.rs. The managed box test succeeds unexpectedly, probably because the annihilator takes care of it. |
The reason this happens is because we throw an exception in the middle of retrieving a stack, and I assume no stack frame exists that claims ownership of the arguments. |
People hit the recursion depth limit too often, it's not possible to unwind reliably from out-of-stack. Issues rust-lang#3555, rust-lang#3695
@brson is this still relevant? |
This test case segfaults now, so I can't tell if it leaks arguments. Nominating for milestone 5, production-ready. (Oops, it's already on that milestone.) |
Out-of-stack now simply aborts. It could be taught to unwind, but it would cause undefined behaviour without teaching LLVM that all functions can unwind. That's likely what was happening here. |
fix `Const generics are handled incorrectly`
…ondet, r=<try> Enable Non-determinism of float operations in Miri and change std tests Links to [rust-lang#4208](rust-lang/miri#4208) and [rust-lang#3555](rust-lang/miri#3555) in Miri. Non-determinism of floating point operations was disabled in rust-lang#137594 because it breaks the tests and doc-tests in core/coretests and std. This PR: - enables the float non-determinism but with a lower relative error of 4ULP instead of 16ULP - changes tests that made incorrect assumptions about the operations not to make that assumption anymore (from `assert_eq!` to `assert_approx_eq!`. - changes the `assert_approx_eq!` macro to allow up to 1e-4 to make the tests pass TODO: - I didn't touch the doc tests because I do not know nearly enough to come near them :) - probably change the `assert_approx_eq` to use the same technique as Miri (i.e., using ULP instead of EPSILON) try-job: x86_64-gnu-aux
This is a major bummer.
The text was updated successfully, but these errors were encountered: