| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
alternative to #128459
fixes #110178
|
|
Miscellaneous improvements to struct tail normalization
1. Make checks for foreign tails more accurate by normalizing the struct tail. I didn't write a test for this one.
2. Normalize when computing struct tail for `offset_of` for slice/str. This fixes the new solver only.
3. Normalizing when computing tails for disaligned reference check. This fixes both solvers.
r? lcnr
|
|
Rollup of 4 pull requests
Successful merges:
- #128616 (Don't inline tainted MIR bodies)
- #128804 (run-make: enable msvc for redundant-libs)
- #128823 (run-make: enable msvc for staticlib-dylib-linkage)
- #128824 (Update compiler-builtins version to 0.1.118)
Failed merges:
- #128410 (Migrate `remap-path-prefix-dwarf` `run-make` test to rmake)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Update compiler-builtins version to 0.1.118
r? `@Amanieu`
|
|
run-make: enable msvc for staticlib-dylib-linkage
`-Zstaticlib-allow-rdylib-deps` on MSVC returns things like `/LIBPATH:R:\rust\build\x86_64-pc-windows-msvc\test\run-make\staticlib-dylib-linkage\rmake_out`. That is a linker argument rather than a `cc` argument. Which makes sense because rustc interacts directly with the linker on MSVC targets. So we need to tell the C compiler to pass on the arguments to the linker.
try-job: x86_64-msvc
try-job: i686-msvc
|
|
run-make: enable msvc for redundant-libs
The issue here was that `foo` was not exporting any functions therefore creating an import library was unnecessary and elided by the linker.
I fixed it by exporting the functions.
try-job: x86_64-msvc
try-job: i686-msvc
|
|
Don't inline tainted MIR bodies
Don't inline MIR bodies that are tainted, since they're not necessarily well-formed.
Fixes #128601 (I didn't add a new test, just copied one from the crashes, since they're the same root cause).
Fixes #122909.
|
|
|
|
Rollup of 8 pull requests
Successful merges:
- #128640 (rwlock: disable 'frob' test in Miri on macOS)
- #128791 (Don't implement `AsyncFn` for `FnDef`/`FnPtr` that wouldnt implement `Fn`)
- #128806 (Split `ColorConfig` off of `HumanReadableErrorType`)
- #128818 (std float tests: special-case Miri in feature detection)
- #128834 (rustdoc: strip unreachable modules)
- #128836 (rustdoc-json: add a test for impls on private & hidden types)
- #128837 (Clippy subtree update)
- #128851 (Add comment that bors did not see pushed before it merged)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Add comment that bors did not see pushed before it merged
In #128612, bors merged 470ada2de0ec507191ad8da35b0712986646d01c instead of 1e07c19.
This means it dropped a useful comment I added, and a stage rename that is more descriptive.
|
|
Clippy subtree update
r? ``@Manishearth``
Updates Cargo.lock due to uitest bump
|
|
rustdoc-json: add a test for impls on private & hidden types
Fixes #107278 (or rather just ensures it won't resurface)
r? ``@aDotInTheVoid``
|
|
rustdoc: strip unreachable modules
Modules are now stripped based on the same logic that's used to strip other item kinds
Fixes #101105
|
|
std float tests: special-case Miri in feature detection
Quick work-around to fix miri-test-libstd failures.
r? ``@tgross35``
|
|
Split `ColorConfig` off of `HumanReadableErrorType`
The previous setup tied two unrelated things together. Splitting these two is a better model.
Identified by https://github.com/rust-lang/rust/pull/126597/files#r1667800754
|
|
Don't implement `AsyncFn` for `FnDef`/`FnPtr` that wouldnt implement `Fn`
Due to unsafety, ABI, or the presence of target features, some `FnDef`/`FnPtr` types don't implement `Fn*`. Do the same for `AsyncFn*`.
Noticed this due to #128764, but this isn't really related to that ICE, which is fixed in #128792.
|
|
rwlock: disable 'frob' test in Miri on macOS
Due to https://github.com/rust-lang/rust/issues/121950, Miri will sometimes complain about this test on macOS. Better disable the test, as otherwise it can fail for unrelated PRs.
r? ``@joboet``
|
|
|
|
Update cargo
3 commits in 94977cb1fab003d45eb5bb108cb5e2fa0149672a..0d8d22f83b066503f6b2b755925197e959e58b4f
2024-08-06 21:42:10 +0000 to 2024-08-08 12:54:24 +0000
- fix: std Cargo.lock moved to `library` dir (rust-lang/cargo#14370)
- fix(vendor): Strip excluded build targets (rust-lang/cargo#14367)
- Infer registry (rust-lang/cargo#14340)
r? ghost
|
|
Rollup of 7 pull requests
Successful merges:
- #128306 (Update NonNull::align_offset quarantees)
- #128612 (Make `validate_mir` ensure the final MIR for all bodies)
- #128648 (Add regression test)
- #128749 (Mark `{f32,f64}::{next_up,next_down,midpoint}` inline)
- #128795 (Update E0517 message to reflect RFC 2195.)
- #128825 (rm `declared_features` field in resolver)
- #128826 (Only suggest `#[allow]` for `--warn` and `--deny` lint level flags)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
clippy-subtree-update
|
|
Rustup
r? `@ghost`
changelog: ICE fix [`uninit_vec`] through https://github.com/rust-lang/rust/pull/128720
|
|
Only suggest `#[allow]` for `--warn` and `--deny` lint level flags
`--force-warn` and `--forbid` cannot be overridden
|
|
rm `declared_features` field in resolver
r? ``@petrochenkov``
|
|
Update E0517 message to reflect RFC 2195.
E0517 occurs when a `#[repr(..)]` attribute is placed on an unsupported item. Currently, the explanation of the error implies that `#[repr(u*/i*)]` cannot be placed on fieldful enums, which is no longer the case since [RFC 2195](https://github.com/rust-lang/rfcs/pull/2195) was [stabilized](https://github.com/rust-lang/rust/issues/60553), which allows placing `#[repr(u*/i*)]` and/or `#[repr(C)]` on fieldful enums to produce a defined layout.
This PR doesn't (currently) add a description of the semantics of placing `#[repr(u*/i*)]` on a fieldful enum to the error explanation, it just removes the claims/implications that it is not allowed.
|
|
Mark `{f32,f64}::{next_up,next_down,midpoint}` inline
Most float functions are marked `#[inline]` so any float symbols used by these functions only need to be provided if the function itself is used. RFL recently noticed that `next_up`, `next_down`, and `midpoint` for `f32` and `f64` are not inline, which causes linker errors when building with certain configurations <https://lore.kernel.org/all/20240806150619.192882-1-ojeda@kernel.org/>.
Add the missing attributes so the symbols should no longer be required.
|
|
Add regression test
Fixes #125873
|
|
Make `validate_mir` ensure the final MIR for all bodies
A lot of the crashes tests use `-Zpolymorphize` or `-Zdump-mir` for their side effect of computing the `optimized_mir` for all bodies, which will uncover bugs with late MIR passes like the inliner. I don't like having all these tests depend on `-Zpolymorphize` (or other hacky ways) for no reason, so this PR extends the `-Zvalidate-mir` flag to ensure `optimized_mir`/`mir_for_ctfe` for all body owners during the analysis phase.
Two thoughts:
1. This could be moved later in the compilation pipeline I guess? I don't really think it matters, though.
1. This could alternatively be expressed using a new flag, though I don't necessarily see much value in separating these.
For example, #128171 could have used this flag, in the `tests/ui/polymorphization/inline-incorrect-early-bound.rs`.
r? mir
|
|
WiktorPrzetacznik:WiktorPrzetacznik-nonnull-alignoffset-update, r=Amanieu
Update NonNull::align_offset quarantees
This PR proposes to update [`NonNull::align_offset`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.align_offset) guarantees, which should to be matched with [`ptr::align_offset`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.align_offset-1)
(as `NonNull::align_offset` delegates to `ptr::align_offset`).
[PR #121201](https://github.com/rust-lang/rust/pull/121201) updated only `ptr::align_offset` docs.
|
|
|
|
|
|
|
|
migrate `thumb-none-qemu` to rmake
tracking issue: https://github.com/rust-lang/rust/issues/121876
I think this one is actually simpler than https://github.com/rust-lang/rust/pull/128636, we invoke `cargo run` with the right target and see if the expected result appears.
r? `@jieyouxu`
try-job: armhf-gnu
try-job: dist-various-1
try-job: test-various
|
|
|
|
modules are now stripped based on the same logic that's used to strip other item kinds
|
|
|
|
|
|
|
|
|
|
Don't use `LateContext` in the constant evaluator
This also changes the interface to require explicitly creating the context. `constant` could be added back in, but the others are probably not worth it.
A couple of bugs have been fixed. The wrong `TypeckResults` was used once when evaluating a constant, and the wrong `ParamEnv` was used by some callers (there wasn't a way to use the correct one).
changelog: none
|
|
The previous setup tied two unrelated things together. Splitting these two is a better model.
|
|
|
|
|
|
|
|
|
|
Don't walk the HIR tree when checking for a const context
changelog: none
|