Skip to content

Commit d71b3f4

Browse files
committed
Auto merge of rust-lang#124813 - maurer:llvm-aarch64-fn32, r=nikic
Adjust 64-bit ARM data layouts for LLVM update LLVM has updated data layouts to specify `Fn32` on 64-bit ARM to avoid C++ accidentally underaligning functions when trying to comply with member function ABIs. This should only affect Rust in cases where we had a similar bug (I don't believe we have one), but our data layout must match to generate code. As a compatibility adaptatation, if LLVM is not version 19 yet, `Fn32` gets voided from the data layout. See llvm/llvm-project#90415 `@rustbot` label: +llvm-main cc `@krasimirgg` r? `@durin42`
2 parents 5ae5d13 + 4d397d3 commit d71b3f4

Some content is hidden

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

41 files changed

+49
-40
lines changed

compiler/rustc_codegen_llvm/src/context.rs

+9
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,15 @@ pub unsafe fn create_module<'ll>(
133133
}
134134
}
135135

136+
if llvm_version < (19, 0, 0) {
137+
if sess.target.arch == "aarch64" || sess.target.arch.starts_with("arm64") {
138+
// LLVM 19 sets -Fn32 in its data layout string for 64-bit ARM
139+
// Earlier LLVMs leave this default, so remove it.
140+
// See https://github.com/llvm/llvm-project/pull/90702
141+
target_data_layout = target_data_layout.replace("-Fn32", "");
142+
}
143+
}
144+
136145
// Ensure the data-layout values hardcoded remain the defaults.
137146
{
138147
let tm = crate::back::write::create_informational_target_machine(tcx.sess);

compiler/rustc_target/src/spec/targets/aarch64_apple_darwin.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub fn target() -> Target {
2222
std: None,
2323
},
2424
pointer_width: 64,
25-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
25+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
2626
arch: arch.target_arch(),
2727
options: TargetOptions {
2828
mcount: "\u{1}mcount".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_ios.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn target() -> Target {
1919
std: None,
2020
},
2121
pointer_width: 64,
22-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
22+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
2323
arch: arch.target_arch(),
2424
options: TargetOptions {
2525
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_ios_macabi.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: None,
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: arch.target_arch(),
2020
options: TargetOptions {
2121
features: "+neon,+fp-armv8,+apple-a12".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_ios_sim.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn target() -> Target {
1919
std: None,
2020
},
2121
pointer_width: 64,
22-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
22+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
2323
arch: arch.target_arch(),
2424
options: TargetOptions {
2525
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_tvos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub fn target() -> Target {
1212
std: None,
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
15+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
1616
arch: arch.target_arch(),
1717
options: TargetOptions {
1818
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_tvos_sim.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub fn target() -> Target {
1212
std: None,
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
15+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
1616
arch: arch.target_arch(),
1717
options: TargetOptions {
1818
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_visionos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: Some(false),
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: arch.target_arch(),
2020
options: TargetOptions {
2121
features: "+neon,+fp-armv8,+apple-a16".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_visionos_sim.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: Some(false),
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: arch.target_arch(),
2020
options: TargetOptions {
2121
features: "+neon,+fp-armv8,+apple-a16".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_watchos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub fn target() -> Target {
1212
std: None,
1313
},
1414
pointer_width: 64,
15-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
15+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
1616
arch: "aarch64".into(),
1717
options: TargetOptions {
1818
features: "+v8a,+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_apple_watchos_sim.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub fn target() -> Target {
1616
std: None,
1717
},
1818
pointer_width: 64,
19-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
19+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
2020
arch: arch.target_arch(),
2121
options: TargetOptions {
2222
features: "+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/aarch64_be_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn target() -> Target {
1111
std: None,
1212
},
1313
pointer_width: 64,
14-
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
14+
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1515
arch: "aarch64".into(),
1616
options: TargetOptions {
1717
features: "+v8a,+outline-atomics".into(),

compiler/rustc_target/src/spec/targets/aarch64_be_unknown_linux_gnu_ilp32.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn target() -> Target {
1414
std: None,
1515
},
1616
pointer_width: 32,
17-
data_layout: "E-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
17+
data_layout: "E-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1818
arch: "aarch64".into(),
1919
options: TargetOptions {
2020
abi: "ilp32".into(),

compiler/rustc_target/src/spec/targets/aarch64_be_unknown_netbsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn target() -> Target {
1111
std: None,
1212
},
1313
pointer_width: 64,
14-
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
14+
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1515
arch: "aarch64".into(),
1616
options: TargetOptions {
1717
mcount: "__mcount".into(),

compiler/rustc_target/src/spec/targets/aarch64_kmc_solid_asp3.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn target() -> Target {
1111
std: None,
1212
},
1313
pointer_width: 64,
14-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
14+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1515
arch: "aarch64".into(),
1616
options: TargetOptions {
1717
linker: Some("aarch64-kmc-elf-gcc".into()),

compiler/rustc_target/src/spec/targets/aarch64_linux_android.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub fn target() -> Target {
1313
std: None,
1414
},
1515
pointer_width: 64,
16-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
16+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1717
arch: "aarch64".into(),
1818
options: TargetOptions {
1919
max_atomic_width: Some(128),

compiler/rustc_target/src/spec/targets/aarch64_nintendo_switch_freestanding.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: None,
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: TargetOptions {
2121
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_pc_windows_gnullvm.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: None,
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: base,
2121
}

compiler/rustc_target/src/spec/targets/aarch64_pc_windows_msvc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn target() -> Target {
1414
std: None,
1515
},
1616
pointer_width: 64,
17-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
17+
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1818
arch: "aarch64".into(),
1919
options: base,
2020
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_freebsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
std: None,
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
13+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_fuchsia.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
std: None,
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
13+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_hermit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn target() -> Target {
1111
},
1212
pointer_width: 64,
1313
arch: "aarch64".into(),
14-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
14+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1515
options: TargetOptions {
1616
features: "+v8a,+strict-align,+neon,+fp-armv8".into(),
1717
max_atomic_width: Some(128),

compiler/rustc_target/src/spec/targets/aarch64_unknown_illumos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pub fn target() -> Target {
1818
std: None,
1919
},
2020
pointer_width: 64,
21-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
21+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2222
arch: "aarch64".into(),
2323
options: base,
2424
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
std: None,
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
13+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a,+outline-atomics".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_gnu_ilp32.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
std: None,
1111
},
1212
pointer_width: 32,
13-
data_layout: "e-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
13+
data_layout: "e-m:e-p:32:32-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
abi: "ilp32".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub fn target() -> Target {
2121
std: None,
2222
},
2323
pointer_width: 64,
24-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
24+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2525
arch: "aarch64".into(),
2626
options: TargetOptions { mcount: "\u{1}_mcount".into(), ..base },
2727
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_ohos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: None,
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: TargetOptions {
2121
features: "+reserve-x18".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_netbsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
std: None,
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
13+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_none.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub fn target() -> Target {
3838
std: None,
3939
},
4040
pointer_width: 64,
41-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
41+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
4242
arch: "aarch64".into(),
4343
options: opts,
4444
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub fn target() -> Target {
3232
std: None,
3333
},
3434
pointer_width: 64,
35-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
35+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
3636
arch: "aarch64".into(),
3737
options: opts,
3838
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_nto_qnx710.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn target() -> Target {
1919
// i128:128 = 128-bit-integer, minimum_alignment=128, preferred_alignment=128
2020
// n32:64 = 32 and 64 are native integer widths; Elements of this set are considered to support most general arithmetic operations efficiently.
2121
// S128 = 128 bits are the natural alignment of the stack in bits.
22-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
22+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2323
arch: "aarch64".into(),
2424
options: TargetOptions {
2525
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_openbsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
std: None,
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
13+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/aarch64_unknown_redox.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: None,
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: base,
2121
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_teeos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> Target {
1515
std: None,
1616
},
1717
pointer_width: 64,
18-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
18+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1919
arch: "aarch64".into(),
2020
options: base,
2121
}

compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn target() -> Target {
1919
std: None,
2020
},
2121
pointer_width: 64,
22-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
22+
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2323
arch: "aarch64".into(),
2424
options: base,
2525
}

compiler/rustc_target/src/spec/targets/aarch64_uwp_windows_msvc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub fn target() -> Target {
1414
std: None,
1515
},
1616
pointer_width: 64,
17-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
17+
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1818
arch: "aarch64".into(),
1919
options: base,
2020
}

compiler/rustc_target/src/spec/targets/aarch64_wrs_vxworks.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub fn target() -> Target {
1010
std: None,
1111
},
1212
pointer_width: 64,
13-
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
13+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
1616
features: "+v8a".into(),

compiler/rustc_target/src/spec/targets/arm64_32_apple_watchos.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub fn target() -> Target {
1313
std: None,
1414
},
1515
pointer_width: 32,
16-
data_layout: "e-m:o-p:32:32-i64:64-i128:128-n32:64-S128".into(),
16+
data_layout: "e-m:o-p:32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1717
arch: "aarch64".into(),
1818
options: TargetOptions {
1919
features: "+v8a,+neon,+fp-armv8,+apple-a7".into(),

compiler/rustc_target/src/spec/targets/arm64e_apple_darwin.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub fn target() -> Target {
2222
std: None,
2323
},
2424
pointer_width: 64,
25-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
25+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
2626
arch: arch.target_arch(),
2727
options: TargetOptions {
2828
mcount: "\u{1}mcount".into(),

compiler/rustc_target/src/spec/targets/arm64e_apple_ios.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn target() -> Target {
1919
std: None,
2020
},
2121
pointer_width: 64,
22-
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".into(),
22+
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128-Fn32".into(),
2323
arch: arch.target_arch(),
2424
options: TargetOptions {
2525
features: "+neon,+fp-armv8,+apple-a12,+v8.3a,+pauth".into(),

compiler/rustc_target/src/spec/targets/arm64ec_pc_windows_msvc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ pub fn target() -> Target {
1919
std: None,
2020
},
2121
pointer_width: 64,
22-
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".into(),
22+
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
2323
arch: "arm64ec".into(),
2424
options: base,
2525
}

0 commit comments

Comments
 (0)