compiler: Accept "improper" ctypes in extern "rust-cold" fn
This commit is contained in:
parent
f48c99a004
commit
93993c77f5
2 changed files with 18 additions and 1 deletions
|
@ -1320,7 +1320,10 @@ impl<'a, 'tcx> ImproperCTypesVisitor<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_internal_abi(&self, abi: SpecAbi) -> bool {
|
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`.
|
/// 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…
Add table
Add a link
Reference in a new issue