about summary refs log tree commit diff
path: root/tests/codegen/skip-mono-inside-if-false.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/codegen/skip-mono-inside-if-false.rs')
-rw-r--r--tests/codegen/skip-mono-inside-if-false.rs41
1 files changed, 0 insertions, 41 deletions
diff --git a/tests/codegen/skip-mono-inside-if-false.rs b/tests/codegen/skip-mono-inside-if-false.rs
deleted file mode 100644
index 8b95de99dd3..00000000000
--- a/tests/codegen/skip-mono-inside-if-false.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-//@ compile-flags: -Cno-prepopulate-passes -Copt-level=0
-
-#![crate_type = "lib"]
-
-#[no_mangle]
-pub fn demo_for_i32() {
-    generic_impl::<i32>();
-}
-
-// Two important things here:
-// - We replace the "then" block with `unreachable` to avoid linking problems
-// - We neither declare nor define the `big_impl` that said block "calls".
-
-// CHECK-LABEL: ; skip_mono_inside_if_false::generic_impl
-// CHECK: start:
-// CHECK-NEXT: br label %[[ELSE_BRANCH:bb[0-9]+]]
-// CHECK: [[ELSE_BRANCH]]:
-// CHECK-NEXT: call skip_mono_inside_if_false::small_impl
-// CHECK: bb{{[0-9]+}}:
-// CHECK-NEXT: ret void
-// CHECK: bb{{[0-9+]}}:
-// CHECK-NEXT: unreachable
-
-fn generic_impl<T>() {
-    trait MagicTrait {
-        const IS_BIG: bool;
-    }
-    impl<T> MagicTrait for T {
-        const IS_BIG: bool = std::mem::size_of::<T>() > 10;
-    }
-    if T::IS_BIG {
-        big_impl::<T>();
-    } else {
-        small_impl::<T>();
-    }
-}
-
-#[inline(never)]
-fn small_impl<T>() {}
-#[inline(never)]
-fn big_impl<T>() {}