add regression test
This commit is contained in:
parent
eaaa03faf7
commit
3589798281
@ -1,8 +0,0 @@
|
||||
// check-pass
|
||||
#![allow(improper_ctypes_definitions)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
// Check that computing the fn abi for `bad`, with a external ABI fn ptr that is not FFI-safe, does
|
||||
// not ICE.
|
||||
|
||||
pub fn bad(f: extern "C" fn([u8])) {}
|
30
tests/ui/abi/unsized-args-in-c-abi-issues-94223-115845.rs
Normal file
30
tests/ui/abi/unsized-args-in-c-abi-issues-94223-115845.rs
Normal file
@ -0,0 +1,30 @@
|
||||
// check-pass
|
||||
#![allow(improper_ctypes_definitions)]
|
||||
#![feature(unsized_tuple_coercion)]
|
||||
#![feature(unsized_fn_params)]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
// Check that computing the fn abi for `bad`, with a external ABI fn ptr that is not FFI-safe, does
|
||||
// not ICE.
|
||||
|
||||
pub fn bad(f: extern "C" fn([u8])) {}
|
||||
|
||||
// While these get accepted, they should also not ICE.
|
||||
// (If we ever reject them, remove them from this test to ensure the `bad` above
|
||||
// is still tested. Do *not* make this a check/build-fail test.)
|
||||
|
||||
pub extern "C" fn declare_bad(_x: str) {}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "system" fn declare_more_bad(f: dyn FnOnce()) {
|
||||
}
|
||||
|
||||
fn make_bad() -> extern "C" fn(([u8],)) {
|
||||
todo!()
|
||||
}
|
||||
|
||||
pub fn call_bad() {
|
||||
let f = make_bad();
|
||||
let slice: Box<([u8],)> = Box::new(([1; 8],));
|
||||
f(*slice);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user