about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorTomasz Miąsko <tomasz.miasko@gmail.com>2020-04-06 00:00:00 +0000
committerTomasz Miąsko <tomasz.miasko@gmail.com>2020-04-06 00:00:00 +0000
commitc8b83babf358cd3094fb05a65889a6d017a81d96 (patch)
treee7750129f4aba532d04bf6d3af825b79e8be6d54 /src/test
parent733f104f138477ef20f59eadcbcf8800b21a7732 (diff)
downloadrust-c8b83babf358cd3094fb05a65889a6d017a81d96.tar.gz
rust-c8b83babf358cd3094fb05a65889a6d017a81d96.zip
Keep codegen units unmerged when building compiler builtins
Diffstat (limited to 'src/test')
-rw-r--r--src/test/codegen-units/partitioning/compiler-builtins.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/codegen-units/partitioning/compiler-builtins.rs b/src/test/codegen-units/partitioning/compiler-builtins.rs
new file mode 100644
index 00000000000..25195743b04
--- /dev/null
+++ b/src/test/codegen-units/partitioning/compiler-builtins.rs
@@ -0,0 +1,40 @@
+// Verifies that during compiler_builtins compilation the codegen units are kept
+// unmerged. Even when only a single codegen unit is requested with -Ccodegen-units=1.
+//
+// compile-flags: -Zprint-mono-items=eager -Ccodegen-units=1
+
+#![compiler_builtins]
+#![crate_type="lib"]
+#![feature(compiler_builtins)]
+
+mod atomics {
+    //~ MONO_ITEM fn compiler_builtins::atomics[0]::sync_1[0] @@ compiler_builtins-cgu.0[External]
+    #[no_mangle]
+    pub extern "C" fn sync_1() {}
+
+    //~ MONO_ITEM fn compiler_builtins::atomics[0]::sync_2[0] @@ compiler_builtins-cgu.0[External]
+    #[no_mangle]
+    pub extern "C" fn sync_2() {}
+
+    //~ MONO_ITEM fn compiler_builtins::atomics[0]::sync_3[0] @@ compiler_builtins-cgu.0[External]
+    #[no_mangle]
+    pub extern "C" fn sync_3() {}
+}
+
+mod x {
+    //~ MONO_ITEM fn compiler_builtins::x[0]::x[0] @@ compiler_builtins-cgu.1[External]
+    #[no_mangle]
+    pub extern "C" fn x() {}
+}
+
+mod y {
+    //~ MONO_ITEM fn compiler_builtins::y[0]::y[0] @@ compiler_builtins-cgu.2[External]
+    #[no_mangle]
+    pub extern "C" fn y() {}
+}
+
+mod z {
+    //~ MONO_ITEM fn compiler_builtins::z[0]::z[0] @@ compiler_builtins-cgu.3[External]
+    #[no_mangle]
+    pub extern "C" fn z() {}
+}