Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 607bd91

Browse files
committedApr 3, 2025·
make abi_unsupported_vector_types a hard error
1 parent b6d74b5 commit 607bd91

15 files changed

+103
-946
lines changed
 

‎compiler/rustc_lint/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,11 @@ fn register_builtins(store: &mut LintStore) {
606606
"converted into hard error, see issue #127323 \
607607
<https://github.com/rust-lang/rust/issues/127323> for more information",
608608
);
609+
store.register_removed(
610+
"abi_unsupported_vector_types",
611+
"converted into hard error, \
612+
see <https://github.com/rust-lang/rust/issues/116558> for more information",
613+
);
609614
}
610615

611616
fn register_internals(store: &mut LintStore) {

‎compiler/rustc_lint_defs/src/builtin.rs

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ declare_lint_pass! {
1616
/// that are used by other parts of the compiler.
1717
HardwiredLints => [
1818
// tidy-alphabetical-start
19-
ABI_UNSUPPORTED_VECTOR_TYPES,
2019
ABSOLUTE_PATHS_NOT_STARTING_WITH_CRATE,
2120
AMBIGUOUS_ASSOCIATED_ITEMS,
2221
AMBIGUOUS_GLOB_IMPORTS,
@@ -5061,74 +5060,6 @@ declare_lint! {
50615060
crate_level_only
50625061
}
50635062

5064-
declare_lint! {
5065-
/// The `abi_unsupported_vector_types` lint detects function definitions and calls
5066-
/// whose ABI depends on enabling certain target features, but those features are not enabled.
5067-
///
5068-
/// ### Example
5069-
///
5070-
/// ```rust,ignore (fails on non-x86_64)
5071-
/// extern "C" fn missing_target_feature(_: std::arch::x86_64::__m256) {
5072-
/// todo!()
5073-
/// }
5074-
///
5075-
/// #[target_feature(enable = "avx")]
5076-
/// unsafe extern "C" fn with_target_feature(_: std::arch::x86_64::__m256) {
5077-
/// todo!()
5078-
/// }
5079-
///
5080-
/// fn main() {
5081-
/// let v = unsafe { std::mem::zeroed() };
5082-
/// unsafe { with_target_feature(v); }
5083-
/// }
5084-
/// ```
5085-
///
5086-
/// This will produce:
5087-
///
5088-
/// ```text
5089-
/// warning: ABI error: this function call uses a avx vector type, which is not enabled in the caller
5090-
/// --> lint_example.rs:18:12
5091-
/// |
5092-
/// | unsafe { with_target_feature(v); }
5093-
/// | ^^^^^^^^^^^^^^^^^^^^^^ function called here
5094-
/// |
5095-
/// = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
5096-
/// = note: for more information, see issue #116558 <https://github.com/rust-lang/rust/issues/116558>
5097-
/// = help: consider enabling it globally (-C target-feature=+avx) or locally (#[target_feature(enable="avx")])
5098-
/// = note: `#[warn(abi_unsupported_vector_types)]` on by default
5099-
///
5100-
///
5101-
/// warning: ABI error: this function definition uses a avx vector type, which is not enabled
5102-
/// --> lint_example.rs:3:1
5103-
/// |
5104-
/// | pub extern "C" fn with_target_feature(_: std::arch::x86_64::__m256) {
5105-
/// | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function defined here
5106-
/// |
5107-
/// = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
5108-
/// = note: for more information, see issue #116558 <https://github.com/rust-lang/rust/issues/116558>
5109-
/// = help: consider enabling it globally (-C target-feature=+avx) or locally (#[target_feature(enable="avx")])
5110-
/// ```
5111-
///
5112-
///
5113-
///
5114-
/// ### Explanation
5115-
///
5116-
/// The C ABI for `__m256` requires the value to be passed in an AVX register,
5117-
/// which is only possible when the `avx` target feature is enabled.
5118-
/// Therefore, `missing_target_feature` cannot be compiled without that target feature.
5119-
/// A similar (but complementary) message is triggered when `with_target_feature` is called
5120-
/// by a function that does not enable the `avx` target feature.
5121-
///
5122-
/// Note that this lint is very similar to the `-Wpsabi` warning in `gcc`/`clang`.
5123-
pub ABI_UNSUPPORTED_VECTOR_TYPES,
5124-
Warn,
5125-
"this function call or definition uses a vector type which is not enabled",
5126-
@future_incompatible = FutureIncompatibleInfo {
5127-
reason: FutureIncompatibilityReason::FutureReleaseErrorReportInDeps,
5128-
reference: "issue #116558 <https://github.com/rust-lang/rust/issues/116558>",
5129-
};
5130-
}
5131-
51325063
declare_lint! {
51335064
/// The `wasm_c_abi` lint detects usage of the `extern "C"` ABI of wasm that is affected
51345065
/// by a planned ABI change that has the goal of aligning Rust with the standard C ABI

‎compiler/rustc_monomorphize/src/errors.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,11 @@ pub(crate) struct UnknownCguCollectionMode<'a> {
7070
pub mode: &'a str,
7171
}
7272

73-
#[derive(LintDiagnostic)]
73+
#[derive(Diagnostic)]
7474
#[diag(monomorphize_abi_error_disabled_vector_type)]
7575
#[help]
7676
pub(crate) struct AbiErrorDisabledVectorType<'a> {
77+
#[primary_span]
7778
#[label]
7879
pub span: Span,
7980
pub required_feature: &'a str,
@@ -82,9 +83,10 @@ pub(crate) struct AbiErrorDisabledVectorType<'a> {
8283
pub is_call: bool,
8384
}
8485

85-
#[derive(LintDiagnostic)]
86+
#[derive(Diagnostic)]
8687
#[diag(monomorphize_abi_error_unsupported_vector_type)]
8788
pub(crate) struct AbiErrorUnsupportedVectorType<'a> {
89+
#[primary_span]
8890
#[label]
8991
pub span: Span,
9092
pub ty: Ty<'a>,

‎compiler/rustc_monomorphize/src/mono_checks/abi_check.rs

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use rustc_hir::{CRATE_HIR_ID, HirId};
55
use rustc_middle::mir::{self, Location, traversal};
66
use rustc_middle::ty::layout::LayoutCx;
77
use rustc_middle::ty::{self, Instance, InstanceKind, Ty, TyCtxt, TypingEnv};
8-
use rustc_session::lint::builtin::{ABI_UNSUPPORTED_VECTOR_TYPES, WASM_C_ABI};
8+
use rustc_session::lint::builtin::WASM_C_ABI;
99
use rustc_span::def_id::DefId;
1010
use rustc_span::{DUMMY_SP, Span, Symbol, sym};
1111
use rustc_target::callconv::{ArgAbi, Conv, FnAbi, PassMode};
@@ -50,34 +50,24 @@ fn do_check_simd_vector_abi<'tcx>(
5050
let feature = match feature_def.iter().find(|(bits, _)| size.bits() <= *bits) {
5151
Some((_, feature)) => feature,
5252
None => {
53-
let (span, hir_id) = loc();
54-
tcx.emit_node_span_lint(
55-
ABI_UNSUPPORTED_VECTOR_TYPES,
56-
hir_id,
53+
let (span, _hir_id) = loc();
54+
tcx.dcx().emit_err(errors::AbiErrorUnsupportedVectorType {
5755
span,
58-
errors::AbiErrorUnsupportedVectorType {
59-
span,
60-
ty: arg_abi.layout.ty,
61-
is_call,
62-
},
63-
);
56+
ty: arg_abi.layout.ty,
57+
is_call,
58+
});
6459
continue;
6560
}
6661
};
6762
if !have_feature(Symbol::intern(feature)) {
6863
// Emit error.
69-
let (span, hir_id) = loc();
70-
tcx.emit_node_span_lint(
71-
ABI_UNSUPPORTED_VECTOR_TYPES,
72-
hir_id,
64+
let (span, _hir_id) = loc();
65+
tcx.dcx().emit_err(errors::AbiErrorDisabledVectorType {
7366
span,
74-
errors::AbiErrorDisabledVectorType {
75-
span,
76-
required_feature: feature,
77-
ty: arg_abi.layout.ty,
78-
is_call,
79-
},
80-
);
67+
required_feature: feature,
68+
ty: arg_abi.layout.ty,
69+
is_call,
70+
});
8171
}
8272
}
8373
}

‎compiler/rustc_target/src/target_features.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,7 @@ const RISCV_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[
765765
(32768, "zvl32768b"),
766766
(65536, "zvl65536b"),
767767
];
768-
// Always warn on SPARC, as the necessary target features cannot be enabled in Rust at the moment.
768+
// Always error on SPARC, as the necessary target features cannot be enabled in Rust at the moment.
769769
const SPARC_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[/*(64, "vis")*/];
770770

771771
const HEXAGON_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] =

‎tests/ui/abi/simd-abi-checks-avx.rs

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
//@ only-x86_64
2-
//@ build-pass
3-
//@ ignore-pass (test emits codegen-time warnings)
2+
//@ build-fail
43
//@ compile-flags: -C target-feature=-avx
54

65
#![feature(avx512_target_feature)]
@@ -14,20 +13,17 @@ use std::arch::x86_64::*;
1413
struct Wrapper(__m256);
1514

1615
unsafe extern "C" fn w(_: Wrapper) {
17-
//~^ requires the `avx` target feature, which is not enabled
18-
//~| WARNING this was previously accepted by the compiler
16+
//~^ ERROR: requires the `avx` target feature, which is not enabled
1917
todo!()
2018
}
2119

2220
unsafe extern "C" fn f(_: __m256) {
23-
//~^ requires the `avx` target feature, which is not enabled
24-
//~| WARNING this was previously accepted by the compiler
21+
//~^ ERROR: requires the `avx` target feature, which is not enabled
2522
todo!()
2623
}
2724

2825
unsafe extern "C" fn g() -> __m256 {
29-
//~^ requires the `avx` target feature, which is not enabled
30-
//~| WARNING this was previously accepted by the compiler
26+
//~^ ERROR: requires the `avx` target feature, which is not enabled
3127
todo!()
3228
}
3329

@@ -56,25 +52,20 @@ unsafe fn test() {
5652
unsafe fn in_closure() -> impl FnOnce() -> __m256 {
5753
#[inline(always)] // this disables target-feature inheritance
5854
|| g()
59-
//~^ WARNING requires the `avx` target feature, which is not enabled in the caller
60-
//~| WARNING this was previously accepted by the compiler
55+
//~^ ERROR requires the `avx` target feature, which is not enabled in the caller
6156
}
6257

6358
fn main() {
6459
unsafe {
6560
f(g());
66-
//~^ WARNING requires the `avx` target feature, which is not enabled in the caller
67-
//~| WARNING requires the `avx` target feature, which is not enabled in the caller
68-
//~| WARNING this was previously accepted by the compiler
69-
//~| WARNING this was previously accepted by the compiler
61+
//~^ ERROR requires the `avx` target feature, which is not enabled in the caller
62+
//~| ERROR requires the `avx` target feature, which is not enabled in the caller
7063
}
7164

7265
unsafe {
7366
gavx(favx());
74-
//~^ WARNING requires the `avx` target feature, which is not enabled in the caller
75-
//~| WARNING requires the `avx` target feature, which is not enabled in the caller
76-
//~| WARNING this was previously accepted by the compiler
77-
//~| WARNING this was previously accepted by the compiler
67+
//~^ ERROR requires the `avx` target feature, which is not enabled in the caller
68+
//~| ERROR requires the `avx` target feature, which is not enabled in the caller
7869
}
7970

8071
unsafe {
@@ -83,10 +74,8 @@ fn main() {
8374

8475
unsafe {
8576
w(Wrapper(g()));
86-
//~^ WARNING requires the `avx` target feature, which is not enabled in the caller
87-
//~| WARNING requires the `avx` target feature, which is not enabled in the caller
88-
//~| WARNING this was previously accepted by the compiler
89-
//~| WARNING this was previously accepted by the compiler
77+
//~^ ERROR requires the `avx` target feature, which is not enabled in the caller
78+
//~| ERROR requires the `avx` target feature, which is not enabled in the caller
9079
}
9180

9281
unsafe {
@@ -99,8 +88,7 @@ fn main() {
9988
fn some_extern() -> __m256;
10089
}
10190
some_extern();
102-
//~^ WARNING requires the `avx` target feature, which is not enabled in the caller
103-
//~| WARNING this was previously accepted by the compiler
91+
//~^ ERROR requires the `avx` target feature, which is not enabled in the caller
10492
}
10593
}
10694

‎tests/ui/abi/simd-abi-checks-avx.stderr

Lines changed: 27 additions & 176 deletions
Large diffs are not rendered by default.
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
//! At the time of writing, the list of "which target feature enables which vector size" is empty
2+
//! for SPARC. Ensure that this leads to all vector sizes causing an error.
13
//@ add-core-stubs
24
//@ needs-llvm-components: sparc
35
//@ compile-flags: --target=sparc-unknown-none-elf --crate-type=rlib
4-
//@ build-pass
5-
//@ ignore-pass (test emits codegen-time warnings)
6+
//@ build-fail
67
#![no_core]
78
#![feature(no_core, repr_simd)]
89
#![allow(improper_ctypes_definitions)]
@@ -14,5 +15,4 @@ use minicore::*;
1415
pub struct SimdVec([i32; 4]);
1516

1617
pub extern "C" fn pass_by_vec(_: SimdVec) {}
17-
//~^ this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
18-
//~| WARNING this was previously accepted by the compiler
18+
//~^ ERROR: this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,8 @@
1-
warning: this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
2-
--> $DIR/simd-abi-checks-empty-list.rs:16:1
1+
error: this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
2+
--> $DIR/simd-abi-checks-empty-list.rs:17:1
33
|
44
LL | pub extern "C" fn pass_by_vec(_: SimdVec) {}
55
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function defined here
6-
|
7-
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
8-
= note: for more information, see issue #116558 <https://github.com/rust-lang/rust/issues/116558>
9-
= note: `#[warn(abi_unsupported_vector_types)]` on by default
10-
11-
warning: 1 warning emitted
126

13-
Future incompatibility report: Future breakage diagnostic:
14-
warning: this function definition uses SIMD vector type `SimdVec` which is not currently supported with the chosen ABI
15-
--> $DIR/simd-abi-checks-empty-list.rs:16:1
16-
|
17-
LL | pub extern "C" fn pass_by_vec(_: SimdVec) {}
18-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function defined here
19-
|
20-
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
21-
= note: for more information, see issue #116558 <https://github.com/rust-lang/rust/issues/116558>
22-
= note: `#[warn(abi_unsupported_vector_types)]` on by default
7+
error: aborting due to 1 previous error
238

‎tests/ui/abi/simd-abi-checks-s390x.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#![no_core]
1414
#![crate_type = "lib"]
1515
#![allow(non_camel_case_types, improper_ctypes_definitions)]
16-
#![deny(abi_unsupported_vector_types)]
1716

1817
extern crate minicore;
1918
use minicore::*;
@@ -38,13 +37,11 @@ impl<T: Copy> Copy for TransparentWrapper<T> {}
3837
#[no_mangle]
3938
extern "C" fn vector_ret_small(x: &i8x8) -> i8x8 {
4039
//~^ ERROR requires the `vector` target feature, which is not enabled
41-
//~^^ WARN this was previously accepted
4240
*x
4341
}
4442
#[no_mangle]
4543
extern "C" fn vector_ret(x: &i8x16) -> i8x16 {
4644
//~^ ERROR requires the `vector` target feature, which is not enabled
47-
//~^^ WARN this was previously accepted
4845
*x
4946
}
5047
#[no_mangle]
@@ -93,15 +90,13 @@ extern "C" fn vector_transparent_wrapper_ret_small(
9390
x: &TransparentWrapper<i8x8>,
9491
) -> TransparentWrapper<i8x8> {
9592
//~^^^ ERROR requires the `vector` target feature, which is not enabled
96-
//~^^^^ WARN this was previously accepted
9793
*x
9894
}
9995
#[no_mangle]
10096
extern "C" fn vector_transparent_wrapper_ret(
10197
x: &TransparentWrapper<i8x16>,
10298
) -> TransparentWrapper<i8x16> {
10399
//~^^^ ERROR requires the `vector` target feature, which is not enabled
104-
//~^^^^ WARN this was previously accepted
105100
*x
106101
}
107102
#[no_mangle]
@@ -115,13 +110,11 @@ extern "C" fn vector_transparent_wrapper_ret_large(
115110
#[no_mangle]
116111
extern "C" fn vector_arg_small(x: i8x8) -> i64 {
117112
//~^ ERROR requires the `vector` target feature, which is not enabled
118-
//~^^ WARN this was previously accepted
119113
unsafe { *(&x as *const i8x8 as *const i64) }
120114
}
121115
#[no_mangle]
122116
extern "C" fn vector_arg(x: i8x16) -> i64 {
123117
//~^ ERROR requires the `vector` target feature, which is not enabled
124-
//~^^ WARN this was previously accepted
125118
unsafe { *(&x as *const i8x16 as *const i64) }
126119
}
127120
#[no_mangle]
@@ -133,13 +126,11 @@ extern "C" fn vector_arg_large(x: i8x32) -> i64 {
133126
#[no_mangle]
134127
extern "C" fn vector_wrapper_arg_small(x: Wrapper<i8x8>) -> i64 {
135128
//~^ ERROR requires the `vector` target feature, which is not enabled
136-
//~^^ WARN this was previously accepted
137129
unsafe { *(&x as *const Wrapper<i8x8> as *const i64) }
138130
}
139131
#[no_mangle]
140132
extern "C" fn vector_wrapper_arg(x: Wrapper<i8x16>) -> i64 {
141133
//~^ ERROR requires the `vector` target feature, which is not enabled
142-
//~^^ WARN this was previously accepted
143134
unsafe { *(&x as *const Wrapper<i8x16> as *const i64) }
144135
}
145136
#[no_mangle]
@@ -151,13 +142,11 @@ extern "C" fn vector_wrapper_arg_large(x: Wrapper<i8x32>) -> i64 {
151142
#[no_mangle]
152143
extern "C" fn vector_transparent_wrapper_arg_small(x: TransparentWrapper<i8x8>) -> i64 {
153144
//~^ ERROR requires the `vector` target feature, which is not enabled
154-
//~^^ WARN this was previously accepted
155145
unsafe { *(&x as *const TransparentWrapper<i8x8> as *const i64) }
156146
}
157147
#[no_mangle]
158148
extern "C" fn vector_transparent_wrapper_arg(x: TransparentWrapper<i8x16>) -> i64 {
159149
//~^ ERROR requires the `vector` target feature, which is not enabled
160-
//~^^ WARN this was previously accepted
161150
unsafe { *(&x as *const TransparentWrapper<i8x16> as *const i64) }
162151
}
163152
#[no_mangle]

‎tests/ui/abi/simd-abi-checks-s390x.z10.stderr

Lines changed: 10 additions & 199 deletions
Large diffs are not rendered by default.

‎tests/ui/abi/simd-abi-checks-s390x.z13_no_vector.stderr

Lines changed: 10 additions & 199 deletions
Large diffs are not rendered by default.

‎tests/ui/abi/simd-abi-checks-s390x.z13_soft_float.stderr

Lines changed: 10 additions & 199 deletions
Large diffs are not rendered by default.

‎tests/ui/abi/simd-abi-checks-sse.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
//@ compile-flags: --crate-type=rlib --target=i586-unknown-linux-gnu
44
//@ compile-flags: -Ctarget-cpu=pentium4 -C target-feature=-sse,-sse2
55
//@ add-core-stubs
6-
//@ build-pass
7-
//@ ignore-pass (test emits codegen-time warnings)
6+
//@ build-fail
87
//@ needs-llvm-components: x86
98
#![feature(no_core, repr_simd)]
109
#![no_core]
@@ -18,6 +17,5 @@ pub struct SseVector([i64; 2]);
1817

1918
#[no_mangle]
2019
pub unsafe extern "C" fn f(_: SseVector) {
21-
//~^ this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
22-
//~| WARNING this was previously accepted by the compiler
20+
//~^ ERROR: this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
2321
}
Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,10 @@
1-
warning: this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
2-
--> $DIR/simd-abi-checks-sse.rs:20:1
1+
error: this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
2+
--> $DIR/simd-abi-checks-sse.rs:19:1
33
|
44
LL | pub unsafe extern "C" fn f(_: SseVector) {
55
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function defined here
66
|
7-
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
8-
= note: for more information, see issue #116558 <https://github.com/rust-lang/rust/issues/116558>
97
= help: consider enabling it globally (`-C target-feature=+sse`) or locally (`#[target_feature(enable="sse")]`)
10-
= note: `#[warn(abi_unsupported_vector_types)]` on by default
118

12-
warning: 1 warning emitted
13-
14-
Future incompatibility report: Future breakage diagnostic:
15-
warning: this function definition uses SIMD vector type `SseVector` which (with the chosen ABI) requires the `sse` target feature, which is not enabled
16-
--> $DIR/simd-abi-checks-sse.rs:20:1
17-
|
18-
LL | pub unsafe extern "C" fn f(_: SseVector) {
19-
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function defined here
20-
|
21-
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
22-
= note: for more information, see issue #116558 <https://github.com/rust-lang/rust/issues/116558>
23-
= help: consider enabling it globally (`-C target-feature=+sse`) or locally (`#[target_feature(enable="sse")]`)
24-
= note: `#[warn(abi_unsupported_vector_types)]` on by default
9+
error: aborting due to 1 previous error
2510

0 commit comments

Comments
 (0)
Please sign in to comment.