Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
d81cc68
fix: add EII function aliases to exported symbols
AsakuraMizu Mar 11, 2026
fd45124
add generic & unresolved inference variables handling in `select_tran…
zedddie Mar 12, 2026
125cefc
freebsd sync: fix _umtx_time flags check to use bitwise operation.
devnexen Mar 21, 2026
69fcf26
Unblock all threads with expired timeouts in single scheduler run
WhySoBad Mar 22, 2026
e38b941
Merge pull request #4915 from WhySoBad/unblock-all-exceeded-threads
RalfJung Mar 23, 2026
365d2bc
Prepare for merging from rust-lang/rust
RalfJung Mar 24, 2026
15bf079
Merge ref '212b0d480f33' from rust-lang/rust
RalfJung Mar 24, 2026
65f28d1
support looking up extern statics via dlsym
RalfJung Mar 24, 2026
fd9670b
make better use of CStr/CString
RalfJung Mar 24, 2026
4ed1320
Merge pull request #4918 from RalfJung/rustup
RalfJung Mar 24, 2026
b32f9cb
CONTRIBUTING: explain how to build miri against a locally built rustc
RalfJung Mar 24, 2026
60b17f3
Merge pull request #4919 from RalfJung/locally-built
RalfJung Mar 24, 2026
63a2011
test miri_start with and without std
RalfJung Mar 24, 2026
457f9c9
Merge pull request #4920 from RalfJung/miri-start
RalfJung Mar 24, 2026
a2856a7
Prepare for merging from rust-lang/rust
Mar 25, 2026
65ed29a
Merge ref '8a703520e80d' from rust-lang/rust
Mar 25, 2026
8dbb4ae
Merge pull request #4921 from rust-lang/rustup-2026-03-25
RalfJung Mar 25, 2026
f0c2bb0
./miri toolchain: support overwriting the to-be-installed commit
RalfJung Mar 25, 2026
e180c49
Merge pull request #4923 from RalfJung/toolchain-commit
RalfJung Mar 25, 2026
d0db8c2
Add socket `getpeername` shim
WhySoBad Mar 22, 2026
2e1ad2a
Merge pull request #4916 from WhySoBad/network-socket-getpeername
RalfJung Mar 25, 2026
c9f2a6e
Prepare for merging from rust-lang/rust
Mar 26, 2026
5a36f1e
Merge ref '1174f784096d' from rust-lang/rust
Mar 26, 2026
e56d866
fmt
Mar 26, 2026
7eb2c67
Merge pull request #4924 from rust-lang/rustup-2026-03-26
RalfJung Mar 26, 2026
e12a6db
Implement MoveFileExW shim
CraftSpider Jan 22, 2026
4bbc502
Merge pull request #4823 from CraftSpider/windows-rename
RalfJung Mar 27, 2026
db49482
ci: bump checkout action
RalfJung Mar 27, 2026
5983fd3
bump sysroot builder (support for new build-dir layout)
RalfJung Mar 27, 2026
d9a7219
test with new build dir layout
RalfJung Mar 27, 2026
c26f488
Merge pull request #4925 from RalfJung/build-dir-layout
RalfJung Mar 27, 2026
6183ecd
native-lib: fix passing repr(C) enums
RalfJung Mar 28, 2026
1c3e8d1
fix UB in test_swap_ptr_triple_dangling
RalfJung Mar 28, 2026
7500768
Use flag subtraction pattern for _umtx_time flags check.
devnexen Mar 28, 2026
3a3a646
Merge pull request #4926 from RalfJung/native-lib-enums
RalfJung Mar 28, 2026
424dfe5
Prepare for merging from rust-lang/rust
Mar 29, 2026
6478773
Merge ref '148adf223edb' from rust-lang/rust
Mar 29, 2026
5bc280c
fmt
Mar 29, 2026
886c5cd
Merge pull request #4927 from rust-lang/rustup-2026-03-29
RalfJung Mar 29, 2026
5bbdfb0
use 'flag subtraction' pattern for 'open'
RalfJung Mar 29, 2026
684bff7
Add aarch64 CRC32 intrinsic shims
Bougerous Mar 13, 2026
59f15fb
minor tweaks
RalfJung Mar 28, 2026
154eedd
Merge pull request #4911 from devnexen/freebsd_abstime_flag_fix
RalfJung Mar 29, 2026
84236b1
Merge pull request #4899 from Bougerous/aarch64-crc32-intrinsics
RalfJung Mar 29, 2026
2791e43
Merge pull request #4928 from RalfJung/open-flag-sub
RalfJung Mar 29, 2026
7719980
Prepare for merging from rust-lang/rust
Mar 30, 2026
81d9a51
Merge ref '116458d0a5ae' from rust-lang/rust
Mar 30, 2026
8f3bb2e
Merge pull request #4930 from rust-lang/rustup-2026-03-30
RalfJung Mar 30, 2026
29710ca
remove debug requirement from hooks
jdonszelmann Jan 27, 2026
bf42a53
delete several `ui/consts` tests
cyrgani Mar 30, 2026
e61842d
Update `mir-opt` 64-bit panic-abort tests for `Alignment` rename
jyn514 Mar 30, 2026
02611d8
aarch64: add shims for pairwise widening/wrapping addition
folkertdev Mar 21, 2026
3865377
Merge pull request #4912 from folkertdev/aarch64-pairwise-add
RalfJung Mar 30, 2026
79d00db
update lockfile
RalfJung Mar 30, 2026
d29c489
add self-referential param-env normalization regression
TaKO8Ki Mar 8, 2026
6518de3
Skip suggestions pointing to extern macro def for assert_eq
chenyukang Mar 30, 2026
59fe28d
compiler-builtins: Clean up features
tgross35 Jun 18, 2025
8e46490
Rollup merge of #154582 - RalfJung:miri, r=RalfJung
tgross35 Mar 31, 2026
e1d917a
Rollup merge of #142659 - tgross35:builtins-features, r=Amanieu
tgross35 Mar 31, 2026
3479a1d
Rollup merge of #153574 - TaKO8Ki:self-referential-param-env-normaliz…
tgross35 Mar 31, 2026
4b23782
Rollup merge of #153648 - AsakuraMizu:fix-eii-lto-alias, r=jdonszelma…
tgross35 Mar 31, 2026
68d2666
Rollup merge of #153790 - zedddie:transmutation-regression, r=jdonsze…
tgross35 Mar 31, 2026
472c531
Rollup merge of #154551 - chenyukang:yukang-fix-146204-assert-ne-sugg…
tgross35 Mar 31, 2026
66c7f9d
Rollup merge of #154574 - cyrgani:less-const-tests, r=Kivooeo
tgross35 Mar 31, 2026
44faca9
Rollup merge of #154577 - ferrocene:jyn/bless-mir-opt, r=jieyouxu
tgross35 Mar 31, 2026
4485c39
Rollup merge of #154579 - jdonszelmann:remove-debug-hook, r=lcnr
tgross35 Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 41 additions & 12 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3421,14 +3421,14 @@ dependencies = [

[[package]]
name = "rustc-build-sysroot"
version = "0.5.11"
version = "0.5.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b881c015c729b43105bbd3702a9bdecee28fafaa21126d1d62e454ec011a4b7"
checksum = "eec3905e8201688412f6f4b1f6c86d38b3ee6578f59ba85f41330a3af61e8365"
dependencies = [
"anyhow",
"rustc_version",
"tempfile",
"toml 0.8.23",
"toml 1.1.0+spec-1.1.0",
"walkdir",
]

Expand Down Expand Up @@ -5195,9 +5195,9 @@ dependencies = [

[[package]]
name = "serde_spanned"
version = "1.0.3"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392"
checksum = "876ac351060d4f882bb1032b6369eb0aef79ad9df1ea8bc404874d8cc3d0cd98"
dependencies = [
"serde_core",
]
Expand Down Expand Up @@ -5693,7 +5693,6 @@ version = "0.8.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
dependencies = [
"indexmap",
"serde",
"serde_spanned 0.6.9",
"toml_datetime 0.6.11",
Expand All @@ -5708,13 +5707,28 @@ checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
dependencies = [
"indexmap",
"serde_core",
"serde_spanned 1.0.3",
"serde_spanned 1.1.0",
"toml_datetime 0.7.3",
"toml_parser",
"toml_writer",
"winnow 0.7.13",
]

[[package]]
name = "toml"
version = "1.1.0+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8195ca05e4eb728f4ba94f3e3291661320af739c4e43779cbdfae82ab239fcc"
dependencies = [
"indexmap",
"serde_core",
"serde_spanned 1.1.0",
"toml_datetime 1.1.0+spec-1.1.0",
"toml_parser",
"toml_writer",
"winnow 1.0.0",
]

[[package]]
name = "toml_datetime"
version = "0.6.11"
Expand All @@ -5733,6 +5747,15 @@ dependencies = [
"serde_core",
]

[[package]]
name = "toml_datetime"
version = "1.1.0+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f"
dependencies = [
"serde_core",
]

[[package]]
name = "toml_edit"
version = "0.19.15"
Expand Down Expand Up @@ -5762,11 +5785,11 @@ dependencies = [

[[package]]
name = "toml_parser"
version = "1.0.4"
version = "1.1.0+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011"
dependencies = [
"winnow 0.7.13",
"winnow 1.0.0",
]

[[package]]
Expand All @@ -5777,9 +5800,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"

[[package]]
name = "toml_writer"
version = "1.0.4"
version = "1.1.0+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
checksum = "d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed"

[[package]]
name = "tracing"
Expand Down Expand Up @@ -6765,6 +6788,12 @@ dependencies = [
"memchr",
]

[[package]]
name = "winnow"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8"

[[package]]
name = "winsplit"
version = "0.1.0"
Expand Down
8 changes: 8 additions & 0 deletions compiler/rustc_codegen_ssa/src/back/symbol_export.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,14 @@ fn exported_non_generic_symbols_provider_local<'tcx>(
}))
}

symbols.extend(sorted.iter().flat_map(|&(&def_id, &info)| {
tcx.codegen_fn_attrs(def_id).foreign_item_symbol_aliases.iter().map(
move |&(foreign_item, _linkage, _visibility)| {
(ExportedSymbol::NonGeneric(foreign_item), info)
},
)
}));

if tcx.entry_fn(()).is_some() {
let exported_symbol =
ExportedSymbol::NoDefId(SymbolName::new(tcx, tcx.sess.target.entry_name.as_ref()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2878,6 +2878,10 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
trait_predicate: ty::PolyTraitPredicate<'tcx>,
root_obligation: &PredicateObligation<'tcx>,
) -> (PredicateObligation<'tcx>, ty::PolyTraitPredicate<'tcx>) {
if obligation.predicate.has_non_region_param() || obligation.has_non_region_infer() {
return (obligation.clone(), trait_predicate);
}

let ocx = ObligationCtxt::new(self);
let normalized_predicate = self.tcx.erase_and_anonymize_regions(
self.tcx.instantiate_bound_regions_with_erased(trait_predicate),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -545,8 +545,12 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
.all(|obligation| self.predicate_may_hold(obligation))
}) && steps > 0
{
if span.in_external_macro(self.tcx.sess.source_map()) {
return false;
}
let derefs = "*".repeat(steps);
let msg = "consider dereferencing here";

let call_node = self.tcx.hir_node(*call_hir_id);
let is_receiver = matches!(
call_node,
Expand Down Expand Up @@ -593,7 +597,6 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
})
{
// Suggest dereferencing the LHS, RHS, or both terms of a binop if possible

let trait_pred = predicate.unwrap_or(trait_pred);
let lhs_ty = self.tcx.instantiate_bound_regions_with_erased(trait_pred.self_ty());
let lhs_autoderef = (self.autoderef_steps)(lhs_ty);
Expand Down Expand Up @@ -644,6 +647,9 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
})
{
let make_sugg = |mut expr: &Expr<'_>, mut steps| {
if expr.span.in_external_macro(self.tcx.sess.source_map()) {
return None;
}
let mut prefix_span = expr.span.shrink_to_lo();
let mut msg = "consider dereferencing here";
if let hir::ExprKind::AddrOf(_, _, inner) = expr.kind {
Expand All @@ -661,10 +667,10 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
}
// Empty suggestions with empty spans ICE with debug assertions
if steps == 0 {
return (
return Some((
msg.trim_end_matches(" and dereferencing instead"),
vec![(prefix_span, String::new())],
);
));
}
let derefs = "*".repeat(steps);
let needs_parens = steps > 0 && expr_needs_parens(expr);
Expand All @@ -686,16 +692,21 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
if !prefix_span.is_empty() {
suggestion.push((prefix_span, String::new()));
}
(msg, suggestion)
Some((msg, suggestion))
};

if let Some(lsteps) = lsteps
&& let Some(rsteps) = rsteps
&& lsteps > 0
&& rsteps > 0
{
let mut suggestion = make_sugg(lhs, lsteps).1;
suggestion.append(&mut make_sugg(rhs, rsteps).1);
let Some((_, mut suggestion)) = make_sugg(lhs, lsteps) else {
return false;
};
let Some((_, mut rhs_suggestion)) = make_sugg(rhs, rsteps) else {
return false;
};
suggestion.append(&mut rhs_suggestion);
err.multipart_suggestion(
"consider dereferencing both sides of the expression",
suggestion,
Expand All @@ -705,13 +716,17 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
} else if let Some(lsteps) = lsteps
&& lsteps > 0
{
let (msg, suggestion) = make_sugg(lhs, lsteps);
let Some((msg, suggestion)) = make_sugg(lhs, lsteps) else {
return false;
};
err.multipart_suggestion(msg, suggestion, Applicability::MachineApplicable);
return true;
} else if let Some(rsteps) = rsteps
&& rsteps > 0
{
let (msg, suggestion) = make_sugg(rhs, rsteps);
let Some((msg, suggestion)) = make_sugg(rhs, rsteps) else {
return false;
};
err.multipart_suggestion(msg, suggestion, Applicability::MachineApplicable);
return true;
}
Expand Down Expand Up @@ -4824,6 +4839,9 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> {
candidate_impls: &[ImplCandidate<'tcx>],
span: Span,
) {
if span.in_external_macro(self.tcx.sess.source_map()) {
return;
}
// We can only suggest the slice coercion for function and binary operation arguments,
// since the suggestion would make no sense in turbofish or call
let (ObligationCauseCode::BinOp { .. } | ObligationCauseCode::FunctionArg { .. }) =
Expand Down
19 changes: 7 additions & 12 deletions compiler/rustc_trait_selection/src/traits/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -300,19 +300,14 @@ fn do_normalize_predicates<'tcx>(
Ok(predicates) => Ok(predicates),
Err(fixup_err) => {
// If we encounter a fixup error, it means that some type
// variable wound up unconstrained. I actually don't know
// if this can happen, and I certainly don't expect it to
// happen often, but if it did happen it probably
// represents a legitimate failure due to some kind of
// unconstrained variable.
//
// @lcnr: Let's still ICE here for now. I want a test case
// for that.
span_bug!(
// variable wound up unconstrained. That can happen for
// ill-formed impls, so we delay a bug here instead of
// immediately ICEing and let type checking report the
// actual user-facing errors.
Err(tcx.dcx().span_delayed_bug(
span,
"inference variables in normalized parameter environment: {}",
fixup_err
);
format!("inference variables in normalized parameter environment: {fixup_err}"),
))
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion library/alloc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ bench = false

[dependencies]
core = { path = "../core", public = true }
compiler_builtins = { path = "../compiler-builtins/compiler-builtins", features = ["rustc-dep-of-std"] }
compiler_builtins = { path = "../compiler-builtins/compiler-builtins", features = ["compiler-builtins"] }

[features]
compiler-builtins-mem = ['compiler_builtins/mem']
Expand Down
8 changes: 3 additions & 5 deletions library/compiler-builtins/builtins-shim/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ test = false
cc = { version = "1.2", optional = true }

[features]
default = ["compiler-builtins"]
default = []

# Enable compilation of C code in compiler-rt, filling in some more optimized
# implementations and also filling in unimplemented intrinsics
Expand All @@ -50,7 +50,8 @@ c = ["dep:cc"]
# the generic versions on all platforms.
no-asm = []

# Flag this library as the unstable compiler-builtins lib
# Flag this library as the unstable compiler-builtins lib. This must be enabled
# when using as `std`'s dependency.'
compiler-builtins = []

# Generate memory-related intrinsics like memcpy
Expand All @@ -60,9 +61,6 @@ mem = []
# compiler-rt implementations. Also used for testing
mangled-names = []

# Only used in the compiler's build system
rustc-dep-of-std = ["compiler-builtins"]

# This makes certain traits and function specializations public that
# are not normally public but are required by the `builtins-test`
unstable-public-internals = []
10 changes: 4 additions & 6 deletions library/compiler-builtins/compiler-builtins/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ core = { path = "../../core", optional = true }
cc = { version = "1.2", optional = true }

[features]
default = ["compiler-builtins"]
default = []

# Enable compilation of C code in compiler-rt, filling in some more optimized
# implementations and also filling in unimplemented intrinsics
Expand All @@ -45,8 +45,9 @@ c = ["dep:cc"]
# the generic versions on all platforms.
no-asm = []

# Flag this library as the unstable compiler-builtins lib
compiler-builtins = []
# Flag this library as the unstable compiler-builtins lib. This must be enabled
# when using as `std`'s dependency.'
compiler-builtins = ["dep:core"]

# Generate memory-related intrinsics like memcpy
mem = []
Expand All @@ -55,9 +56,6 @@ mem = []
# compiler-rt implementations. Also used for testing
mangled-names = []

# Only used in the compiler's build system
rustc-dep-of-std = ["compiler-builtins", "dep:core"]

# This makes certain traits and function specializations public that
# are not normally public but are required by the `builtins-test`
unstable-public-internals = []
10 changes: 5 additions & 5 deletions src/tools/miri/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
env:
HOST_TARGET: ${{ matrix.host_target }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: install multiarch
if: ${{ matrix.multiarch != '' }}
run: |
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
name: style checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: ./.github/workflows/setup

- name: rustfmt
Expand All @@ -121,7 +121,7 @@ jobs:
name: bootstrap build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
# Deliberately skipping `./.github/workflows/setup` as we do our own setup
- name: Add cache for cargo
id: cache
Expand Down Expand Up @@ -156,7 +156,7 @@ jobs:
name: coverage report
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: ./.github/workflows/setup
- name: coverage
run: ./miri test --coverage
Expand Down Expand Up @@ -191,7 +191,7 @@ jobs:
pull-requests: write
if: ${{ github.event_name == 'schedule' }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 256 # get a bit more of the history
- name: install josh-sync
Expand Down
Loading
Loading