compiler: Accept "improper" ctypes in extern "rust-cold" fn
This commit is contained in:
parent
f48c99a004
commit
93993c77f5
@ -1320,7 +1320,10 @@ fn check_foreign_static(&mut self, id: hir::OwnerId, span: Span) {
|
||||
}
|
||||
|
||||
fn is_internal_abi(&self, abi: SpecAbi) -> bool {
|
||||
matches!(abi, SpecAbi::Rust | SpecAbi::RustCall | SpecAbi::RustIntrinsic)
|
||||
matches!(
|
||||
abi,
|
||||
SpecAbi::Rust | SpecAbi::RustCall | SpecAbi::RustCold | SpecAbi::RustIntrinsic
|
||||
)
|
||||
}
|
||||
|
||||
/// Find any fn-ptr types with external ABIs in `ty`.
|
||||
|
14
tests/ui/lint/rust-cold-fn-accept-improper-ctypes.rs
Normal file
14
tests/ui/lint/rust-cold-fn-accept-improper-ctypes.rs
Normal file
@ -0,0 +1,14 @@
|
||||
//@ check-pass
|
||||
#![feature(rust_cold_cc)]
|
||||
|
||||
// extern "rust-cold" is a "Rust" ABI so we accept `repr(Rust)` types as arg/ret without warnings.
|
||||
|
||||
pub extern "rust-cold" fn f(_: ()) -> Result<(), ()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
extern "rust-cold" {
|
||||
pub fn g(_: ()) -> Result<(), ()>;
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user