Skip to content

Commit 88f19c6

Browse files
committed
Auto merge of rust-lang#84864 - Mark-Simulacrum:stable-next, r=Mark-Simulacrum
[stable] 1.52.0 release This includes the release notes (rust-lang#84183) as well as cherry-picked commits from: * [beta] revert PR rust-lang#77885 rust-lang#84710 * [beta] remove assert_matches rust-lang#84759 * Revert PR 81473 to resolve (on beta) issues 81626 and 81658. rust-lang#83171 * [beta] rustdoc revert deref recur rust-lang#84868 * Fix ICE of for-loop mut borrowck where no suggestions are available rust-lang#83401 Additionally in "fresh work" we're also: * reverting: directly expose copy and copy_nonoverlapping intrinsics rust-lang#81238 to avoid rust-lang#84297 on 1.52
2 parents 9a1dfd2 + 47c7b9c commit 88f19c6

File tree

69 files changed

+830
-940
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+830
-940
lines changed

RELEASES.md

+343-11
Large diffs are not rendered by default.

compiler/rustc_codegen_ssa/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
2-
#![feature(assert_matches)]
32
#![feature(bool_to_option)]
43
#![feature(box_patterns)]
54
#![feature(drain_filter)]

compiler/rustc_middle/src/ich/impls_syntax.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,7 @@ impl<'ctx> rustc_ast::HashStableContext for StableHashingContext<'ctx> {
4545
item.hash_stable(self, hasher);
4646
style.hash_stable(self, hasher);
4747
span.hash_stable(self, hasher);
48-
assert_matches!(
49-
tokens.as_ref(),
50-
None,
51-
"Tokens should have been removed during lowering!"
52-
);
48+
assert!(tokens.as_ref().is_none(), "Tokens should have been removed during lowering!");
5349
} else {
5450
unreachable!();
5551
}

compiler/rustc_middle/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
2525
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
2626
#![feature(array_windows)]
27-
#![feature(assert_matches)]
2827
#![feature(backtrace)]
2928
#![feature(bool_to_option)]
3029
#![feature(box_patterns)]

compiler/rustc_middle/src/mir/interpret/allocation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ impl<'tcx, Tag: Copy, Extra: AllocationExtra<Tag>> Allocation<Tag, Extra> {
339339
for dest in bytes {
340340
*dest = src.next().expect("iterator was shorter than it said it would be");
341341
}
342-
assert_matches!(src.next(), None, "iterator was longer than it said it would be");
342+
assert!(src.next().is_none(), "iterator was longer than it said it would be");
343343
Ok(())
344344
}
345345

compiler/rustc_mir/src/borrow_check/diagnostics/mutability_errors.rs

+10-7
Original file line numberDiff line numberDiff line change
@@ -642,15 +642,18 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
642642
.starts_with(&original_method_ident.name.to_string())
643643
})
644644
.map(|ident| format!("{}()", ident))
645+
.peekable()
645646
});
646647

647-
if let Some(suggestions) = opt_suggestions {
648-
err.span_suggestions(
649-
path_segment.ident.span,
650-
&format!("use mutable method"),
651-
suggestions,
652-
Applicability::MaybeIncorrect,
653-
);
648+
if let Some(mut suggestions) = opt_suggestions {
649+
if suggestions.peek().is_some() {
650+
err.span_suggestions(
651+
path_segment.ident.span,
652+
&format!("use mutable method"),
653+
suggestions,
654+
Applicability::MaybeIncorrect,
655+
);
656+
}
654657
}
655658
}
656659
};

compiler/rustc_mir/src/interpret/memory.rs

+3-11
Original file line numberDiff line numberDiff line change
@@ -854,11 +854,7 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
854854
Some(ptr) => ptr,
855855
None => {
856856
// zero-sized access
857-
assert_matches!(
858-
src.next(),
859-
None,
860-
"iterator said it was empty but returned an element"
861-
);
857+
assert!(src.next().is_none(), "iterator said it was empty but returned an element");
862858
return Ok(());
863859
}
864860
};
@@ -884,11 +880,7 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
884880
Some(ptr) => ptr,
885881
None => {
886882
// zero-sized access
887-
assert_matches!(
888-
src.next(),
889-
None,
890-
"iterator said it was empty but returned an element"
891-
);
883+
assert!(src.next().is_none(), "iterator said it was empty but returned an element");
892884
return Ok(());
893885
}
894886
};
@@ -902,7 +894,7 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
902894
let offset_ptr = ptr.offset(Size::from_bytes(idx) * 2, &tcx)?; // `Size` multiplication
903895
allocation.write_scalar(&tcx, offset_ptr, val.into(), Size::from_bytes(2))?;
904896
}
905-
assert_matches!(src.next(), None, "iterator was longer than it said it would be");
897+
assert!(src.next().is_none(), "iterator was longer than it said it would be");
906898
Ok(())
907899
}
908900

compiler/rustc_mir/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ Rust MIR: a lowered representation of Rust.
77
#![feature(nll)]
88
#![feature(in_band_lifetimes)]
99
#![feature(array_windows)]
10-
#![feature(assert_matches)]
1110
#![feature(bindings_after_at)]
1211
#![feature(bool_to_option)]
1312
#![feature(box_patterns)]

compiler/rustc_passes/src/dead.rs

-21
Original file line numberDiff line numberDiff line change
@@ -133,22 +133,6 @@ impl<'tcx> MarkSymbolVisitor<'tcx> {
133133
}
134134
}
135135

136-
fn handle_assign(&mut self, expr: &'tcx hir::Expr<'tcx>) {
137-
if self
138-
.typeck_results()
139-
.expr_adjustments(expr)
140-
.iter()
141-
.any(|adj| matches!(adj.kind, ty::adjustment::Adjust::Deref(_)))
142-
{
143-
self.visit_expr(expr);
144-
} else if let hir::ExprKind::Field(base, ..) = expr.kind {
145-
// Ignore write to field
146-
self.handle_assign(base);
147-
} else {
148-
self.visit_expr(expr);
149-
}
150-
}
151-
152136
fn handle_field_pattern_match(
153137
&mut self,
154138
lhs: &hir::Pat<'_>,
@@ -277,11 +261,6 @@ impl<'tcx> Visitor<'tcx> for MarkSymbolVisitor<'tcx> {
277261
hir::ExprKind::MethodCall(..) => {
278262
self.lookup_and_handle_method(expr.hir_id);
279263
}
280-
hir::ExprKind::Assign(ref left, ref right, ..) => {
281-
self.handle_assign(left);
282-
self.visit_expr(right);
283-
return;
284-
}
285264
hir::ExprKind::Field(ref lhs, ..) => {
286265
self.handle_field_access(&lhs, expr.hir_id);
287266
}

compiler/rustc_target/src/spec/i386_apple_ios.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub fn target() -> Target {
1212
arch: "x86".to_string(),
1313
options: TargetOptions {
1414
max_atomic_width: Some(64),
15-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
15+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
16+
stack_probes: StackProbeType::Call,
1617
..base
1718
},
1819
}

compiler/rustc_target/src/spec/i686_apple_darwin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m32".to_string()]);
88
base.link_env_remove.extend(super::apple_base::macos_link_env_remove());
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10+
base.stack_probes = StackProbeType::Call;
1011
base.eliminate_frame_pointer = false;
1112

1213
// Clang automatically chooses a more specific target based on

compiler/rustc_target/src/spec/i686_linux_android.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ pub fn target() -> Target {
1111
// http://developer.android.com/ndk/guides/abis.html#x86
1212
base.cpu = "pentiumpro".to_string();
1313
base.features = "+mmx,+sse,+sse2,+sse3,+ssse3".to_string();
14-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
14+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
15+
base.stack_probes = StackProbeType::Call;
1516

1617
Target {
1718
llvm_target: "i686-linux-android".to_string(),

compiler/rustc_target/src/spec/i686_unknown_freebsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ pub fn target() -> Target {
77
let pre_link_args = base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
88
pre_link_args.push("-m32".to_string());
99
pre_link_args.push("-Wl,-znotext".to_string());
10-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
10+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
11+
base.stack_probes = StackProbeType::Call;
1112

1213
Target {
1314
llvm_target: "i686-unknown-freebsd".to_string(),

compiler/rustc_target/src/spec/i686_unknown_haiku.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m32".to_string()]);
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-haiku".to_string(),

compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-linux-gnu".to_string(),

compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
88
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-Wl,-melf_i386".to_string());
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10+
base.stack_probes = StackProbeType::Call;
1011

1112
// The unwinder used by i686-unknown-linux-musl, the LLVM libunwind
1213
// implementation, apparently relies on frame pointers existing... somehow.

compiler/rustc_target/src/spec/i686_unknown_netbsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-netbsdelf".to_string(),

compiler/rustc_target/src/spec/i686_unknown_openbsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
88
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-fuse-ld=lld".to_string());
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10+
base.stack_probes = StackProbeType::Call;
1011

1112
Target {
1213
llvm_target: "i686-unknown-openbsd".to_string(),

compiler/rustc_target/src/spec/i686_wrs_vxworks.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-linux-gnu".to_string(),

compiler/rustc_target/src/spec/linux_kernel_base.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ pub fn opts() -> TargetOptions {
1313
env: "gnu".to_string(),
1414
disable_redzone: true,
1515
panic_strategy: PanicStrategy::Abort,
16-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
16+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
17+
stack_probes: StackProbeType::Call,
1718
eliminate_frame_pointer: false,
1819
linker_is_gnu: true,
1920
position_independent_executables: true,

compiler/rustc_target/src/spec/x86_64_apple_darwin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ pub fn target() -> Target {
1010
vec!["-m64".to_string(), "-arch".to_string(), "x86_64".to_string()],
1111
);
1212
base.link_env_remove.extend(super::apple_base::macos_link_env_remove());
13-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
13+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
14+
base.stack_probes = StackProbeType::Call;
1415

1516
// Clang automatically chooses a more specific target based on
1617
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work

compiler/rustc_target/src/spec/x86_64_apple_ios.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ pub fn target() -> Target {
1111
arch: "x86_64".to_string(),
1212
options: TargetOptions {
1313
max_atomic_width: Some(64),
14-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
14+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
15+
stack_probes: StackProbeType::Call,
1516
..base
1617
},
1718
}

compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ pub fn target() -> Target {
1111
arch: "x86_64".to_string(),
1212
options: TargetOptions {
1313
max_atomic_width: Some(64),
14-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
14+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
15+
stack_probes: StackProbeType::Call,
1516
..base
1617
},
1718
}

compiler/rustc_target/src/spec/x86_64_apple_tvos.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ pub fn target() -> Target {
1010
arch: "x86_64".to_string(),
1111
options: TargetOptions {
1212
max_atomic_width: Some(64),
13-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
13+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
14+
stack_probes: StackProbeType::Call,
1415
..base
1516
},
1617
}

compiler/rustc_target/src/spec/x86_64_fuchsia.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ pub fn target() -> Target {
44
let mut base = super::fuchsia_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
7+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
8+
base.stack_probes = StackProbeType::Call;
89

910
Target {
1011
llvm_target: "x86_64-fuchsia".to_string(),

compiler/rustc_target/src/spec/x86_64_linux_android.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ pub fn target() -> Target {
77
base.features = "+mmx,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt".to_string();
88
base.max_atomic_width = Some(64);
99
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
10-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
10+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
11+
base.stack_probes = StackProbeType::Call;
1112

1213
Target {
1314
llvm_target: "x86_64-linux-android".to_string(),

compiler/rustc_target/src/spec/x86_64_pc_solaris.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.cpu = "x86-64".to_string();
77
base.vendor = "pc".to_string();
88
base.max_atomic_width = Some(64);
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10+
base.stack_probes = StackProbeType::Call;
1011

1112
Target {
1213
llvm_target: "x86_64-pc-solaris".to_string(),

compiler/rustc_target/src/spec/x86_64_sun_solaris.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.cpu = "x86-64".to_string();
77
base.vendor = "sun".to_string();
88
base.max_atomic_width = Some(64);
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10+
base.stack_probes = StackProbeType::Call;
1011

1112
Target {
1213
llvm_target: "x86_64-pc-solaris".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-dragonfly".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-freebsd".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m64".to_string()]);
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910
// This option is required to build executables on Haiku x86_64
1011
base.position_independent_executables = true;
1112

compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.features = "+rdrnd,+rdseed".to_string();
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-hermit".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-linux-gnu".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-mx32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910
base.has_elf_tls = false;
1011
// BUG(GabrielMajeri): disabling the PLT on x86_64 Linux with x32 ABI
1112
// breaks code gen. See LLVM bug 36743

compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910
base.static_position_independent_executables = true;
1011

1112
Target {

0 commit comments

Comments
 (0)