| Age | Commit message (Collapse) | Author | Lines |
|
|
|
Remove interior mutability in mir predecessors cache
|
|
|
|
(lifetime errors still exist)
|
|
Miri engine: proper support for `Assert` MIR terminators
This puts down the basis for https://github.com/rust-lang/miri/issues/1070, and I also did some clean-up. The Miri side of this is at https://github.com/rust-lang/miri/pull/1084.
r? @oli-obk
|
|
handle diverging functions forwarding their return place
Fixes https://github.com/rust-lang/miri/issues/1075: the shim around diverging closures turned into function pointers actually "obtains" a return place inside a diverging function, but just uses it as the return place for a diverging callee. Handle this by using NULL places.
This is kind of a hack as it breaks our invariant that all places are dereferencable, but we'd eventually let raw pointers break that anyway I assume so that seems fine.
r? @oli-obk
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CallerLocation
|
|
|
|
rustc: move mir::SourceScopeLocalData to a field of SourceScopeData.
By having one `ClearCrossCrate<SourceScopeLocalData>` for each scope, as opposed to a single `ClearCrossCrate` for all the `SourceScopeLocalData`s, we can represent the fact that some scopes have `SourceScopeLocalData` associated with them, and some don't.
This is useful when doing MIR inlining across crates, because the `ClearCrossCrate` will be `Clear` for the cross-crate MIR scopes and `Set` for the local ones.
Also see https://github.com/rust-lang/rust/pull/66203#issuecomment-555589574 for some context around this approach.
Fixes #51314.
|
|
|
|
|
|
|
|
|
|
|
|
Miri: do not consider memory allocated by caller_location leaked
Fixes https://github.com/rust-lang/miri/issues/1071
r? @oli-obk
I am not sure if this is the best approach, but it certainly is the easiest.
|
|
Async fn resume after completion
#65419 -- Attempting to run an async fn after completion mentions generators
Not yet ready for review - work in progress
Just need to run the tests on a proper build server
|
|
Miri and other engines may want to execute the function in order to detect UB inside of them.
|
|
|
|
|
|
|
|
|
|
Add memoization for const function evaluations
When a const function is being evaluated, as long as all its arguments are zero-sized-types (or it has no arguments) then we can trivially memoize the evaluation result using the existing query mechanism.
With thanks to @oli-obk for mentoring me through this at RustFest Barcelona.
r? @oli-obk
|
|
|
|
|
|
Fix spelling typos
Should be non-semantic.
Uses https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines to find likely typos.
|
|
When a const function is being evaluated, as long as all its
arguments are zero-sized-types (or it has no arguments) then we
can trivially memoize the evaluation result using the existing
query mechanism.
|
|
[const prop] Fix "alloc id without corresponding allocation" ICE
r? @oli-obk
|
|
|
|
Rollup of 14 pull requests
Successful merges:
- #66128 (alloc: Add new_zeroed() versions like new_uninit().)
- #66661 (Add riscv64gc-unknown-linux-gnu target)
- #66663 (Miri: print leak report even without tracing)
- #66711 (Add hardware floating point features to aarch64-pc-windows-msvc)
- #66713 (introduce a target to build the kernel of the unikernel HermitCore)
- #66717 (tidy: Accommodate rustfmt's preferred layout of stability attributes)
- #66719 (Store pointer width as u32 on Config)
- #66720 (Move ErrorReported to rustc_errors)
- #66737 (Error codes cleanup)
- #66754 (Various tweaks to diagnostic output)
- #66763 (Minor edit for documentation-tests.md that increases clarity)
- #66779 (follow the same function order in the trait)
- #66786 (Add wildcard test for const_if_match)
- #66788 (Allow `Unreachable` terminators through `min_const_fn` checks)
Failed merges:
r? @ghost
|
|
Miri: print leak report even without tracing
Currently, the rustup-installed Miri has no way to actually print a leak report (as `trace!` is compiled out). Make it print that per default instead when there is a leak.
r? @oli-obk
|
|
refactor goto_block and also add unwind_to_block
r? @oli-obk
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Use proc-macro to derive HashStable everywhere
Hello,
A second proc-macro is added to derive HashStable for crates librustc depends on.
This proc-macro `HashStable_Generic` (to bikeshed) allows to decouple code and strip much of librustc's boilerplate.
Still, two implementations `Span` and `TokenKind` require to be placed in librustc.
The latter only depends on the `bug` macro. Advise welcome on how to sever that link.
A trait `StableHasingContextLike` has been introduced at each crate root,
in order to handle those implementations which require librustc's very `StableHashingContext`.
This overall effort allowed to remove the `impl_stable_hash_for` macro.
Each commit passes the `x.py check`.
I still have to double check there was no change in the implementation.
|
|
|
|
|
|
|
|
This is necessary so that the `ComstPropMachine` can intern allocations.
|
|
This reverts commit 579625b9e738e606b91fa315c75ab4909fa090be.
|
|
|