From 218caa410aa38c29984be31a5229b9fa717560ee Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:13 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- .../extern/auxiliary/extern-crosscrate-source.rs | 28 ----------- src/test/ui/abi/extern/extern-call-deep.rs | 36 -------------- src/test/ui/abi/extern/extern-call-deep2.rs | 41 ---------------- src/test/ui/abi/extern/extern-call-direct.rs | 10 ---- src/test/ui/abi/extern/extern-call-indirect.rs | 35 -------------- src/test/ui/abi/extern/extern-call-scrub.rs | 45 ------------------ src/test/ui/abi/extern/extern-crosscrate.rs | 21 --------- src/test/ui/abi/extern/extern-pass-TwoU16s.rs | 26 ---------- src/test/ui/abi/extern/extern-pass-TwoU32s.rs | 26 ---------- src/test/ui/abi/extern/extern-pass-TwoU64s.rs | 26 ---------- src/test/ui/abi/extern/extern-pass-TwoU8s.rs | 26 ---------- src/test/ui/abi/extern/extern-pass-char.rs | 15 ------ src/test/ui/abi/extern/extern-pass-double.rs | 13 ----- src/test/ui/abi/extern/extern-pass-empty.rs | 55 ---------------------- src/test/ui/abi/extern/extern-pass-u32.rs | 15 ------ src/test/ui/abi/extern/extern-pass-u64.rs | 15 ------ src/test/ui/abi/extern/extern-return-TwoU16s.rs | 22 --------- src/test/ui/abi/extern/extern-return-TwoU32s.rs | 22 --------- src/test/ui/abi/extern/extern-return-TwoU64s.rs | 22 --------- src/test/ui/abi/extern/extern-return-TwoU8s.rs | 22 --------- 20 files changed, 521 deletions(-) delete mode 100644 src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs delete mode 100644 src/test/ui/abi/extern/extern-call-deep.rs delete mode 100644 src/test/ui/abi/extern/extern-call-deep2.rs delete mode 100644 src/test/ui/abi/extern/extern-call-direct.rs delete mode 100644 src/test/ui/abi/extern/extern-call-indirect.rs delete mode 100644 src/test/ui/abi/extern/extern-call-scrub.rs delete mode 100644 src/test/ui/abi/extern/extern-crosscrate.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-TwoU16s.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-TwoU32s.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-TwoU64s.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-TwoU8s.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-char.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-double.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-empty.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-u32.rs delete mode 100644 src/test/ui/abi/extern/extern-pass-u64.rs delete mode 100644 src/test/ui/abi/extern/extern-return-TwoU16s.rs delete mode 100644 src/test/ui/abi/extern/extern-return-TwoU32s.rs delete mode 100644 src/test/ui/abi/extern/extern-return-TwoU64s.rs delete mode 100644 src/test/ui/abi/extern/extern-return-TwoU8s.rs (limited to 'src/test/ui/abi/extern') diff --git a/src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs b/src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs deleted file mode 100644 index 9c61518b9..000000000 --- a/src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs +++ /dev/null @@ -1,28 +0,0 @@ -#![crate_name = "externcallback"] -#![crate_type = "lib"] -#![feature(rustc_private)] - -extern crate libc; - -pub mod rustrt { - extern crate libc; - - #[link(name = "rust_test_helpers", kind = "static")] - extern "C" { - pub fn rust_dbg_call( - cb: extern "C" fn(libc::uintptr_t) -> libc::uintptr_t, - data: libc::uintptr_t, - ) -> libc::uintptr_t; - } -} - -pub fn fact(n: libc::uintptr_t) -> libc::uintptr_t { - unsafe { - println!("n = {}", n); - rustrt::rust_dbg_call(cb, n) - } -} - -pub extern "C" fn cb(data: libc::uintptr_t) -> libc::uintptr_t { - if data == 1 { data } else { fact(data - 1) * data } -} diff --git a/src/test/ui/abi/extern/extern-call-deep.rs b/src/test/ui/abi/extern/extern-call-deep.rs deleted file mode 100644 index db5f2ca65..000000000 --- a/src/test/ui/abi/extern/extern-call-deep.rs +++ /dev/null @@ -1,36 +0,0 @@ -// run-pass -// ignore-wasm32-bare no libc to test ffi with -// ignore-emscripten blows the JS stack - -#![feature(rustc_private)] - -extern crate libc; - -mod rustrt { - extern crate libc; - - #[link(name = "rust_test_helpers", kind = "static")] - extern "C" { - pub fn rust_dbg_call( - cb: extern "C" fn(libc::uintptr_t) -> libc::uintptr_t, - data: libc::uintptr_t, - ) -> libc::uintptr_t; - } -} - -extern "C" fn cb(data: libc::uintptr_t) -> libc::uintptr_t { - if data == 1 { data } else { count(data - 1) + 1 } -} - -fn count(n: libc::uintptr_t) -> libc::uintptr_t { - unsafe { - println!("n = {}", n); - rustrt::rust_dbg_call(cb, n) - } -} - -pub fn main() { - let result = count(1000); - println!("result = {}", result); - assert_eq!(result, 1000); -} diff --git a/src/test/ui/abi/extern/extern-call-deep2.rs b/src/test/ui/abi/extern/extern-call-deep2.rs deleted file mode 100644 index 60e8db159..000000000 --- a/src/test/ui/abi/extern/extern-call-deep2.rs +++ /dev/null @@ -1,41 +0,0 @@ -// run-pass -#![allow(unused_must_use)] -// ignore-emscripten no threads support -#![feature(rustc_private)] - -extern crate libc; -use std::thread; - -mod rustrt { - extern crate libc; - - #[link(name = "rust_test_helpers", kind = "static")] - extern "C" { - pub fn rust_dbg_call( - cb: extern "C" fn(libc::uintptr_t) -> libc::uintptr_t, - data: libc::uintptr_t, - ) -> libc::uintptr_t; - } -} - -extern "C" fn cb(data: libc::uintptr_t) -> libc::uintptr_t { - if data == 1 { data } else { count(data - 1) + 1 } -} - -fn count(n: libc::uintptr_t) -> libc::uintptr_t { - unsafe { - println!("n = {}", n); - rustrt::rust_dbg_call(cb, n) - } -} - -pub fn main() { - // Make sure we're on a thread with small Rust stacks (main currently - // has a large stack) - thread::spawn(move || { - let result = count(1000); - println!("result = {}", result); - assert_eq!(result, 1000); - }) - .join(); -} diff --git a/src/test/ui/abi/extern/extern-call-direct.rs b/src/test/ui/abi/extern/extern-call-direct.rs deleted file mode 100644 index 19b901d49..000000000 --- a/src/test/ui/abi/extern/extern-call-direct.rs +++ /dev/null @@ -1,10 +0,0 @@ -// run-pass -// Test direct calls to extern fns. - - -extern "C" fn f(x: usize) -> usize { x * 2 } - -pub fn main() { - let x = f(22); - assert_eq!(x, 44); -} diff --git a/src/test/ui/abi/extern/extern-call-indirect.rs b/src/test/ui/abi/extern/extern-call-indirect.rs deleted file mode 100644 index 886e8f6be..000000000 --- a/src/test/ui/abi/extern/extern-call-indirect.rs +++ /dev/null @@ -1,35 +0,0 @@ -// run-pass -// ignore-wasm32-bare no libc to test ffi with - -#![feature(rustc_private)] - -extern crate libc; - -mod rustrt { - extern crate libc; - - #[link(name = "rust_test_helpers", kind = "static")] - extern "C" { - pub fn rust_dbg_call( - cb: extern "C" fn(libc::uintptr_t) -> libc::uintptr_t, - data: libc::uintptr_t, - ) -> libc::uintptr_t; - } -} - -extern "C" fn cb(data: libc::uintptr_t) -> libc::uintptr_t { - if data == 1 { data } else { fact(data - 1) * data } -} - -fn fact(n: libc::uintptr_t) -> libc::uintptr_t { - unsafe { - println!("n = {}", n); - rustrt::rust_dbg_call(cb, n) - } -} - -pub fn main() { - let result = fact(10); - println!("result = {}", result); - assert_eq!(result, 3628800); -} diff --git a/src/test/ui/abi/extern/extern-call-scrub.rs b/src/test/ui/abi/extern/extern-call-scrub.rs deleted file mode 100644 index ff33cf31a..000000000 --- a/src/test/ui/abi/extern/extern-call-scrub.rs +++ /dev/null @@ -1,45 +0,0 @@ -// run-pass -#![allow(unused_must_use)] -// This time we're testing repeatedly going up and down both stacks to -// make sure the stack pointers are maintained properly in both -// directions - -// ignore-emscripten no threads support -#![feature(rustc_private)] - -extern crate libc; -use std::thread; - -mod rustrt { - extern crate libc; - - #[link(name = "rust_test_helpers", kind = "static")] - extern "C" { - pub fn rust_dbg_call( - cb: extern "C" fn(libc::uintptr_t) -> libc::uintptr_t, - data: libc::uintptr_t, - ) -> libc::uintptr_t; - } -} - -extern "C" fn cb(data: libc::uintptr_t) -> libc::uintptr_t { - if data == 1 { data } else { count(data - 1) + count(data - 1) } -} - -fn count(n: libc::uintptr_t) -> libc::uintptr_t { - unsafe { - println!("n = {}", n); - rustrt::rust_dbg_call(cb, n) - } -} - -pub fn main() { - // Make sure we're on a thread with small Rust stacks (main currently - // has a large stack) - thread::spawn(move || { - let result = count(12); - println!("result = {}", result); - assert_eq!(result, 2048); - }) - .join(); -} diff --git a/src/test/ui/abi/extern/extern-crosscrate.rs b/src/test/ui/abi/extern/extern-crosscrate.rs deleted file mode 100644 index 123ce20ca..000000000 --- a/src/test/ui/abi/extern/extern-crosscrate.rs +++ /dev/null @@ -1,21 +0,0 @@ -// run-pass -// aux-build:extern-crosscrate-source.rs -// ignore-wasm32-bare no libc to test ffi with - -#![feature(rustc_private)] - -extern crate externcallback; -extern crate libc; - -fn fact(n: libc::uintptr_t) -> libc::uintptr_t { - unsafe { - println!("n = {}", n); - externcallback::rustrt::rust_dbg_call(externcallback::cb, n) - } -} - -pub fn main() { - let result = fact(10); - println!("result = {}", result); - assert_eq!(result, 3628800); -} diff --git a/src/test/ui/abi/extern/extern-pass-TwoU16s.rs b/src/test/ui/abi/extern/extern-pass-TwoU16s.rs deleted file mode 100644 index cff25511c..000000000 --- a/src/test/ui/abi/extern/extern-pass-TwoU16s.rs +++ /dev/null @@ -1,26 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc for ffi testing - -// Test a foreign function that accepts and returns a struct -// by value. - -#[derive(Copy, Clone, PartialEq, Debug)] -pub struct TwoU16s { - one: u16, - two: u16, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_TwoU16s(v: TwoU16s) -> TwoU16s; -} - -pub fn main() { - unsafe { - let x = TwoU16s { one: 22, two: 23 }; - let y = rust_dbg_extern_identity_TwoU16s(x); - assert_eq!(x, y); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-TwoU32s.rs b/src/test/ui/abi/extern/extern-pass-TwoU32s.rs deleted file mode 100644 index 03a8ecf24..000000000 --- a/src/test/ui/abi/extern/extern-pass-TwoU32s.rs +++ /dev/null @@ -1,26 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc for ffi testing - -// Test a foreign function that accepts and returns a struct -// by value. - -#[derive(Copy, Clone, PartialEq, Debug)] -pub struct TwoU32s { - one: u32, - two: u32, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_TwoU32s(v: TwoU32s) -> TwoU32s; -} - -pub fn main() { - unsafe { - let x = TwoU32s { one: 22, two: 23 }; - let y = rust_dbg_extern_identity_TwoU32s(x); - assert_eq!(x, y); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-TwoU64s.rs b/src/test/ui/abi/extern/extern-pass-TwoU64s.rs deleted file mode 100644 index 8bbc987c8..000000000 --- a/src/test/ui/abi/extern/extern-pass-TwoU64s.rs +++ /dev/null @@ -1,26 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc for ffi testing - -// Test a foreign function that accepts and returns a struct -// by value. - -#[derive(Copy, Clone, PartialEq, Debug)] -pub struct TwoU64s { - one: u64, - two: u64, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_TwoU64s(v: TwoU64s) -> TwoU64s; -} - -pub fn main() { - unsafe { - let x = TwoU64s { one: 22, two: 23 }; - let y = rust_dbg_extern_identity_TwoU64s(x); - assert_eq!(x, y); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-TwoU8s.rs b/src/test/ui/abi/extern/extern-pass-TwoU8s.rs deleted file mode 100644 index 55a53c250..000000000 --- a/src/test/ui/abi/extern/extern-pass-TwoU8s.rs +++ /dev/null @@ -1,26 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc for ffi testing - -// Test a foreign function that accepts and returns a struct -// by value. - -#[derive(Copy, Clone, PartialEq, Debug)] -pub struct TwoU8s { - one: u8, - two: u8, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_TwoU8s(v: TwoU8s) -> TwoU8s; -} - -pub fn main() { - unsafe { - let x = TwoU8s { one: 22, two: 23 }; - let y = rust_dbg_extern_identity_TwoU8s(x); - assert_eq!(x, y); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-char.rs b/src/test/ui/abi/extern/extern-pass-char.rs deleted file mode 100644 index 2b10d26d1..000000000 --- a/src/test/ui/abi/extern/extern-pass-char.rs +++ /dev/null @@ -1,15 +0,0 @@ -// run-pass -// ignore-wasm32-bare no libc for ffi testing - -// Test a function that takes/returns a u8. - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_u8(v: u8) -> u8; -} - -pub fn main() { - unsafe { - assert_eq!(22, rust_dbg_extern_identity_u8(22)); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-double.rs b/src/test/ui/abi/extern/extern-pass-double.rs deleted file mode 100644 index 0b556c99e..000000000 --- a/src/test/ui/abi/extern/extern-pass-double.rs +++ /dev/null @@ -1,13 +0,0 @@ -// run-pass -// ignore-wasm32-bare no libc for ffi testing - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_double(v: f64) -> f64; -} - -pub fn main() { - unsafe { - assert_eq!(22.0_f64, rust_dbg_extern_identity_double(22.0_f64)); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-empty.rs b/src/test/ui/abi/extern/extern-pass-empty.rs deleted file mode 100644 index ee974f6db..000000000 --- a/src/test/ui/abi/extern/extern-pass-empty.rs +++ /dev/null @@ -1,55 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] // FIXME: this test is inherently not FFI-safe. - -// Test a foreign function that accepts empty struct. - -// pretty-expanded FIXME #23616 -// ignore-msvc -// ignore-emscripten emcc asserts on an empty struct as an argument - -#[repr(C)] -struct TwoU8s { - one: u8, - two: u8, -} - -#[repr(C)] -struct ManyInts { - arg1: i8, - arg2: i16, - arg3: i32, - arg4: i16, - arg5: i8, - arg6: TwoU8s, -} - -#[repr(C)] -struct Empty; - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - fn rust_dbg_extern_empty_struct(v1: ManyInts, e: Empty, v2: ManyInts); -} - -pub fn main() { - unsafe { - let x = ManyInts { - arg1: 2, - arg2: 3, - arg3: 4, - arg4: 5, - arg5: 6, - arg6: TwoU8s { one: 7, two: 8 }, - }; - let y = ManyInts { - arg1: 1, - arg2: 2, - arg3: 3, - arg4: 4, - arg5: 5, - arg6: TwoU8s { one: 6, two: 7 }, - }; - let empty = Empty; - rust_dbg_extern_empty_struct(x, empty, y); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-u32.rs b/src/test/ui/abi/extern/extern-pass-u32.rs deleted file mode 100644 index c9b8d52cf..000000000 --- a/src/test/ui/abi/extern/extern-pass-u32.rs +++ /dev/null @@ -1,15 +0,0 @@ -// run-pass -// ignore-wasm32-bare no libc for ffi testing - -// Test a function that takes/returns a u32. - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_u32(v: u32) -> u32; -} - -pub fn main() { - unsafe { - assert_eq!(22, rust_dbg_extern_identity_u32(22)); - } -} diff --git a/src/test/ui/abi/extern/extern-pass-u64.rs b/src/test/ui/abi/extern/extern-pass-u64.rs deleted file mode 100644 index 5103129ab..000000000 --- a/src/test/ui/abi/extern/extern-pass-u64.rs +++ /dev/null @@ -1,15 +0,0 @@ -// run-pass -// ignore-wasm32-bare no libc for ffi testing - -// Test a call to a function that takes/returns a u64. - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_identity_u64(v: u64) -> u64; -} - -pub fn main() { - unsafe { - assert_eq!(22, rust_dbg_extern_identity_u64(22)); - } -} diff --git a/src/test/ui/abi/extern/extern-return-TwoU16s.rs b/src/test/ui/abi/extern/extern-return-TwoU16s.rs deleted file mode 100644 index 2551c93a7..000000000 --- a/src/test/ui/abi/extern/extern-return-TwoU16s.rs +++ /dev/null @@ -1,22 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc to test ffi with - -pub struct TwoU16s { - one: u16, - two: u16, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_return_TwoU16s() -> TwoU16s; -} - -pub fn main() { - unsafe { - let y = rust_dbg_extern_return_TwoU16s(); - assert_eq!(y.one, 10); - assert_eq!(y.two, 20); - } -} diff --git a/src/test/ui/abi/extern/extern-return-TwoU32s.rs b/src/test/ui/abi/extern/extern-return-TwoU32s.rs deleted file mode 100644 index 70a42895d..000000000 --- a/src/test/ui/abi/extern/extern-return-TwoU32s.rs +++ /dev/null @@ -1,22 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc to test ffi with - -pub struct TwoU32s { - one: u32, - two: u32, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_return_TwoU32s() -> TwoU32s; -} - -pub fn main() { - unsafe { - let y = rust_dbg_extern_return_TwoU32s(); - assert_eq!(y.one, 10); - assert_eq!(y.two, 20); - } -} diff --git a/src/test/ui/abi/extern/extern-return-TwoU64s.rs b/src/test/ui/abi/extern/extern-return-TwoU64s.rs deleted file mode 100644 index dd264fb9c..000000000 --- a/src/test/ui/abi/extern/extern-return-TwoU64s.rs +++ /dev/null @@ -1,22 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc to test ffi with - -pub struct TwoU64s { - one: u64, - two: u64, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_return_TwoU64s() -> TwoU64s; -} - -pub fn main() { - unsafe { - let y = rust_dbg_extern_return_TwoU64s(); - assert_eq!(y.one, 10); - assert_eq!(y.two, 20); - } -} diff --git a/src/test/ui/abi/extern/extern-return-TwoU8s.rs b/src/test/ui/abi/extern/extern-return-TwoU8s.rs deleted file mode 100644 index b60387aed..000000000 --- a/src/test/ui/abi/extern/extern-return-TwoU8s.rs +++ /dev/null @@ -1,22 +0,0 @@ -// run-pass -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc to test ffi with - -pub struct TwoU8s { - one: u8, - two: u8, -} - -#[link(name = "rust_test_helpers", kind = "static")] -extern "C" { - pub fn rust_dbg_extern_return_TwoU8s() -> TwoU8s; -} - -pub fn main() { - unsafe { - let y = rust_dbg_extern_return_TwoU8s(); - assert_eq!(y.one, 10); - assert_eq!(y.two, 20); - } -} -- cgit v1.2.3