Skip to content

Unwinding through __morestack on windows does not work #9854

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

Closed
alexcrichton opened this issue Oct 14, 2013 · 1 comment
Closed

Unwinding through __morestack on windows does not work #9854

alexcrichton opened this issue Oct 14, 2013 · 1 comment
Labels
A-codegen Area: Code generation A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows O-windows Operating system: Windows

Comments

@alexcrichton
Copy link
Member

In #9834, we're now using __morestack in the new runtime in order to catch stack overflow failures. The tests related to this functionality are xfail'd on windows, however, because the unwinder does not want to unwind through the __morestack stack frame (or at least that's my best guess).

Nominating for 1.0 high priority, this isn't something which should happen very frequently, but it's frequent enough that we need to be more reasonable than just outright failing on windows.

@alexcrichton
Copy link
Member Author

Closing, this will not be landed in this state.

flip1995 pushed a commit to flip1995/rust that referenced this issue Oct 3, 2024
When there is are multiple references where one of the references
isn't mutable then this results in a false-positive for
`mut_mutex_lock` as it only checks the mutability of the first
reference level.

Fix this by using `peel_mid_ty_refs_is_mutable` which correctly
determines whether the reference is ultimately mutable and thus
whether `Mutex::get_lock()` can actually be used.

Fixes rust-lang#9854
flip1995 pushed a commit to flip1995/rust that referenced this issue Oct 3, 2024
Fix `mut_mutex_lock` when reference not ultimately mutable

When there is are multiple references where one of the references isn't mutable then this results in a false-positive for `mut_mutex_lock` as it only checks the mutability of the first reference level.

Fix this by using `peel_mid_ty_refs_is_mutable` which correctly determines whether the reference is ultimately mutable and thus whether `Mutex::get_lock()` can actually be used.

Fixes rust-lang#9854

changelog: [`mut_mutex_lock`]: No longer lints if the mutex is behind multiple references and one of those references isn't mutable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-codegen Area: Code generation A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows O-windows Operating system: Windows
Projects
None yet
Development

No branches or pull requests

1 participant