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 --- .../arguments-non-c-like-enum/Makefile | 7 --- .../arguments-non-c-like-enum/nonclike.rs | 31 ---------- .../arguments-non-c-like-enum/test.c | 66 ---------------------- 3 files changed, 104 deletions(-) delete mode 100644 src/test/run-make-fulldeps/arguments-non-c-like-enum/Makefile delete mode 100644 src/test/run-make-fulldeps/arguments-non-c-like-enum/nonclike.rs delete mode 100644 src/test/run-make-fulldeps/arguments-non-c-like-enum/test.c (limited to 'src/test/run-make-fulldeps/arguments-non-c-like-enum') diff --git a/src/test/run-make-fulldeps/arguments-non-c-like-enum/Makefile b/src/test/run-make-fulldeps/arguments-non-c-like-enum/Makefile deleted file mode 100644 index 513311c82..000000000 --- a/src/test/run-make-fulldeps/arguments-non-c-like-enum/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -include ../tools.mk - -all: - $(RUSTC) --crate-type=staticlib nonclike.rs - $(CC) test.c $(call STATICLIB,nonclike) $(call OUT_EXE,test) \ - $(EXTRACFLAGS) $(EXTRACXXFLAGS) - $(call RUN,test) diff --git a/src/test/run-make-fulldeps/arguments-non-c-like-enum/nonclike.rs b/src/test/run-make-fulldeps/arguments-non-c-like-enum/nonclike.rs deleted file mode 100644 index 57c2c6127..000000000 --- a/src/test/run-make-fulldeps/arguments-non-c-like-enum/nonclike.rs +++ /dev/null @@ -1,31 +0,0 @@ -#[repr(C, u8)] -pub enum TT { - AA(u64, u64), - BB, -} - -#[no_mangle] -pub extern "C" fn tt_add(a: TT, b: TT) -> u64 { - match (a, b) { - (TT::AA(a1, b1), TT::AA(a2, b2)) => a1 + a2 + b1 + b2, - (TT::AA(a1, b1), TT::BB) => a1 + b1, - (TT::BB, TT::AA(a1, b1)) => a1 + b1, - _ => 0, - } -} - -#[repr(C, u8)] -pub enum T { - A(u64), - B, -} - -#[no_mangle] -pub extern "C" fn t_add(a: T, b: T) -> u64 { - match (a, b) { - (T::A(a), T::A(b)) => a + b, - (T::A(a), T::B) => a, - (T::B, T::A(b)) => b, - _ => 0, - } -} diff --git a/src/test/run-make-fulldeps/arguments-non-c-like-enum/test.c b/src/test/run-make-fulldeps/arguments-non-c-like-enum/test.c deleted file mode 100644 index 0a1621e49..000000000 --- a/src/test/run-make-fulldeps/arguments-non-c-like-enum/test.c +++ /dev/null @@ -1,66 +0,0 @@ -#include -#include - -#include - -/* This is the code generated by cbindgen 0.12.1 for the `enum TT` - * type in nonclike.rs . */ -enum TT_Tag { - AA, - BB, -}; -typedef uint8_t TT_Tag; - -typedef struct { - uint64_t _0; - uint64_t _1; -} AA_Body; - -typedef struct { - TT_Tag tag; - union { - AA_Body aa; - }; -} TT; - -/* This is the code generated by cbindgen 0.12.1 for the `enum T` type - * in nonclike.rs . */ -enum T_Tag { - A, - B, -}; -typedef uint8_t T_Tag; - -typedef struct { - uint64_t _0; -} A_Body; - -typedef struct { - T_Tag tag; - union { - A_Body a; - }; -} T; - -/* These symbols are defined by the Rust staticlib built from - * nonclike.rs. */ -extern uint64_t t_add(T a, T b); -extern uint64_t tt_add(TT a, TT b); - -int main(int argc, char *argv[]) { - (void)argc; (void)argv; - - /* This example works. */ - TT xx = { .tag = AA, .aa = { ._0 = 1, ._1 = 2 } }; - TT yy = { .tag = AA, .aa = { ._0 = 10, ._1 = 20 } }; - uint64_t rr = tt_add(xx, yy); - assert(33 == rr); - - /* This one used to return an incorrect result (see issue #68190). */ - T x = { .tag = A, .a = { ._0 = 1 } }; - T y = { .tag = A, .a = { ._0 = 10 } }; - uint64_t r = t_add(x, y); - assert(11 == r); - - return 0; -} -- cgit v1.2.3