-
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? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: