| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
compared to be equal in different crates
|
|
|
|
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #133266 (ci: fix explanation why LLVM download is disabled for windows-gnu)
- #136133 (Fix sentence in process::abort)
- #136279 (Rename `tcx.ensure()` to `tcx.ensure_ok()`, and improve the associated docs)
- #136328 (Rework "long type names" printing logic)
- #136358 (`#[optimize(none)]` implies `#[inline(never)]`)
- #136368 (Make comma separated lists of anything easier to make for errors)
- #136412 (Tweak fn pointer suggestion span)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
Rename `tcx.ensure()` to `tcx.ensure_ok()`, and improve the associated docs
This is all based on my archaeology for https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/.60TyCtxtEnsure.60.
The main renamings are:
- `tcx.ensure()` → `tcx.ensure_ok()`
- `tcx.ensure_with_value()` → `tcx.ensure_done()`
- Query modifier `ensure_forwards_result_if_red` → `return_result_from_ensure_ok`
Hopefully these new names are a better fit for the *actual* function and purpose of these query call modes.
|
|
ci: fix explanation why LLVM download is disabled for windows-gnu
Continuation of https://github.com/rust-lang/rust/pull/132781
|
|
ci: refactor how directories are removed in free-disk-space disk
try-job: aarch64-gnu
|
|
|
|
|
|
|
|
Use a more convinient way of developing rustc on NixOS
|
|
Rewrite section on executing Docker tests
|
|
|
|
|
|
`rustc_middle` is a huge crate and it's always good to move stuff out of
it. There are lots of similar methods already on `Span`, so these two
functions, `in_external_macro` and `is_from_async_await`, fit right in.
The diff is big because `in_external_macro` is used a lot by clippy
lints.
|
|
|
|
|
|
|
|
|
|
|
|
Implement MIR lowering for unsafe binders
This is the final bit of the unsafe binders puzzle. It implements MIR, CTFE, and codegen for unsafe binders, and enforces that (for now) they are `Copy`. Later on, I'll introduce a new trait that relaxes this requirement to being "is `Copy` or `ManuallyDrop<T>`" which more closely models how we treat union fields.
Namely, wrapping unsafe binders is now `Rvalue::WrapUnsafeBinder`, which acts much like an `Rvalue::Aggregate`. Unwrapping unsafe binders are implemented as a MIR projection `ProjectionElem::UnwrapUnsafeBinder`, which acts much like `ProjectionElem::Field`.
Tracking:
- https://github.com/rust-lang/rust/issues/130516
|
|
|
|
|
|
This is needed for the `gh` command to work.
|
|
ci: use ubuntu 24 on free runners
try-job: aarch64-gnu
try-job: aarch64-gnu-debug
|
|
Co-authored-by: Oneirical <manchot@videotron.ca>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #135840 (omit unused args warnings for intrinsics without body)
- #135900 (Manually walk into WF obligations in `BestObligation` proof tree visitor)
- #136163 (Fix off-by-one error causing slice::sort to abort the program)
- #136266 (fix broken release notes id)
- #136314 (Use proper type when applying deref adjustment in const)
- #136348 (miri: make float min/max non-deterministic)
- #136351 (Add documentation for derive(CoercePointee))
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
tests: Port `symbol-mangling-hashed` to rmake.rs
Part of #121876.
This PR supersedes #128567 and is co-authored with `@lolbinarycat.`
### Summary
This PR ports `tests/run-make/symbol-mangling-hashed` to rmake.rs. Notable differences when compared to the Makefile version includes:
- It's no longer limited to linux + x86_64 only. In particular, this now is exercised on darwin and windows (esp. msvc) too.
- The test uses `object` crate to be more precise in the filtering, and avoids relying on parsing the human-readable `nm` output for *some* `nm` in the given environment (which isn't really a thing on msvc anyway, and `llvm-nm` doesn't handle msvc dylibs AFAICT).
- Dump the symbols satisfying various criteria on test failure to make it hopefully less of a pain to debug if it ever fails in CI.
### Review advice
- Best reviewed commit-by-commit.
- I'm not *super* sure about the msvc logic, would benefit from a MSVC (PE/COFF) expert taking a look.
---
try-job: x86_64-msvc-1
try-job: i686-msvc-1
try-job: i686-mingw
try-job: x86_64-mingw-1
try-job: x86_64-apple-1
try-job: aarch64-apple
try-job: test-various
|
|
miri: make float min/max non-deterministic
This makes Miri match the documentation that landed in https://github.com/rust-lang/rust/pull/136296.
r? ``@oli-obk``
|
|
Rollup of 9 pull requests
Successful merges:
- #134531 ([rustdoc] Add `--extract-doctests` command-line flag)
- #135860 (Compiler: Finalize dyn compatibility renaming)
- #135992 (Improve documentation when adding a new target)
- #136194 (Support clobber_abi in BPF inline assembly)
- #136325 (Delay a bug when indexing unsized slices)
- #136326 (Replace our `LLVMRustDIBuilderRef` with LLVM-C's `LLVMDIBuilderRef`)
- #136330 (Remove unnecessary hooks)
- #136336 (Overhaul `rustc_middle::util`)
- #136341 (Remove myself from vacation)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
|
|
|
|
Insert null checks for pointer dereferences when debug assertions are enabled
Similar to how the alignment is already checked, this adds a check
for null pointer dereferences in debug mode. It is implemented similarly
to the alignment check as a `MirPass`.
This inserts checks in the same places as the `CheckAlignment` pass and additionally
also inserts checks for `Borrows`, so code like
```rust
let ptr: *const u32 = std::ptr::null();
let val: &u32 = unsafe { &*ptr };
```
will have a check inserted on dereference. This is done because null references
are UB. The alignment check doesn't cover these places, because in `&(*ptr).field`,
the exact requirement is that the final reference must be aligned. This is something to
consider further enhancements of the alignment check.
For now this is implemented as a separate `MirPass`, to make it easy to disable
this check if necessary.
This is related to a 2025H1 project goal for better UB checks in debug
mode: https://github.com/rust-lang/rust-project-goals/pull/177.
r? `@saethlin`
|
|
|