summaryrefslogtreecommitdiffstats
path: root/tests/codegen-units/item-collection/cross-crate-closures.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/codegen-units/item-collection/cross-crate-closures.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/codegen-units/item-collection/cross-crate-closures.rs')
-rw-r--r--tests/codegen-units/item-collection/cross-crate-closures.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/codegen-units/item-collection/cross-crate-closures.rs b/tests/codegen-units/item-collection/cross-crate-closures.rs
new file mode 100644
index 000000000..6af344fab
--- /dev/null
+++ b/tests/codegen-units/item-collection/cross-crate-closures.rs
@@ -0,0 +1,33 @@
+// In the current version of the collector that still has to support
+// legacy-codegen, closures do not generate their own MonoItems, so we are
+// ignoring this test until MIR codegen has taken over completely
+// ignore-test
+
+// compile-flags:-Zprint-mono-items=eager
+
+#![deny(dead_code)]
+#![feature(start)]
+
+// aux-build:cgu_extern_closures.rs
+extern crate cgu_extern_closures;
+
+//~ MONO_ITEM fn cross_crate_closures::start[0]
+#[start]
+fn start(_: isize, _: *const *const u8) -> isize {
+
+ //~ MONO_ITEM fn cgu_extern_closures::inlined_fn[0]
+ //~ MONO_ITEM fn cgu_extern_closures::inlined_fn[0]::{{closure}}[0]
+ let _ = cgu_extern_closures::inlined_fn(1, 2);
+
+ //~ MONO_ITEM fn cgu_extern_closures::inlined_fn_generic[0]<i32>
+ //~ MONO_ITEM fn cgu_extern_closures::inlined_fn_generic[0]::{{closure}}[0]<i32>
+ let _ = cgu_extern_closures::inlined_fn_generic(3, 4, 5i32);
+
+ // Nothing should be generated for this call, we just link to the instance
+ // in the extern crate.
+ let _ = cgu_extern_closures::non_inlined_fn(6, 7);
+
+ 0
+}
+
+//~ MONO_ITEM drop-glue i8