From 01c7118fa99a0c1f2df47b25c63fae6f62ef6ed1 Mon Sep 17 00:00:00 2001 From: Oneirical Date: Fri, 12 Jul 2024 15:32:46 -0400 Subject: [PATCH] rewrite extern-fn-with-union to rmake --- .../tidy/src/allowed_run_make_makefiles.txt | 1 - tests/run-make/extern-fn-generic/rmake.rs | 1 + tests/run-make/extern-fn-with-union/Makefile | 7 ------- tests/run-make/extern-fn-with-union/rmake.rs | 16 ++++++++++++++++ 4 files changed, 17 insertions(+), 8 deletions(-) delete mode 100644 tests/run-make/extern-fn-with-union/Makefile create mode 100644 tests/run-make/extern-fn-with-union/rmake.rs diff --git a/src/tools/tidy/src/allowed_run_make_makefiles.txt b/src/tools/tidy/src/allowed_run_make_makefiles.txt index ef18b6f16a2..421097a4bdf 100644 --- a/src/tools/tidy/src/allowed_run_make_makefiles.txt +++ b/src/tools/tidy/src/allowed_run_make_makefiles.txt @@ -21,7 +21,6 @@ run-make/export-executable-symbols/Makefile run-make/extern-diff-internal-name/Makefile run-make/extern-flag-disambiguates/Makefile run-make/extern-fn-reachable/Makefile -run-make/extern-fn-with-union/Makefile run-make/extern-multiple-copies/Makefile run-make/extern-multiple-copies2/Makefile run-make/fmt-write-bloat/Makefile diff --git a/tests/run-make/extern-fn-generic/rmake.rs b/tests/run-make/extern-fn-generic/rmake.rs index 3dee1e20544..05de839a1b0 100644 --- a/tests/run-make/extern-fn-generic/rmake.rs +++ b/tests/run-make/extern-fn-generic/rmake.rs @@ -2,6 +2,7 @@ // test simply runs a Rust program containing generics that is also reliant on // a C library, and checks that compilation and execution are successful. // See https://github.com/rust-lang/rust/pull/15831 + //@ ignore-cross-compile // Reason: the compiled binary is executed diff --git a/tests/run-make/extern-fn-with-union/Makefile b/tests/run-make/extern-fn-with-union/Makefile deleted file mode 100644 index e6c8c993679..00000000000 --- a/tests/run-make/extern-fn-with-union/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# ignore-cross-compile -include ../tools.mk - -all: $(call NATIVE_STATICLIB,ctest) - $(RUSTC) testcrate.rs - $(RUSTC) test.rs - $(call RUN,test) || exit 1 diff --git a/tests/run-make/extern-fn-with-union/rmake.rs b/tests/run-make/extern-fn-with-union/rmake.rs new file mode 100644 index 00000000000..200602eabeb --- /dev/null +++ b/tests/run-make/extern-fn-with-union/rmake.rs @@ -0,0 +1,16 @@ +// If an external function from foreign-function interface was called upon, +// its attributes would only be passed to LLVM if and only if it was called in the same crate. +// This caused passing around unions to be incorrect. +// See https://github.com/rust-lang/rust/pull/14191 + +//@ ignore-cross-compile +// Reason: the compiled binary is executed + +use run_make_support::{build_native_static_lib, run, rustc}; + +fn main() { + build_native_static_lib("ctest"); + rustc().input("testcrate.rs").run(); + rustc().input("test.rs").run(); + run("test"); +}