summary refs log tree commit diff
path: root/tests/codegen-llvm/inherit_overflow.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/codegen-llvm/inherit_overflow.rs')
-rw-r--r--tests/codegen-llvm/inherit_overflow.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/codegen-llvm/inherit_overflow.rs b/tests/codegen-llvm/inherit_overflow.rs
new file mode 100644
index 00000000000..e4a5ef39fc5
--- /dev/null
+++ b/tests/codegen-llvm/inherit_overflow.rs
@@ -0,0 +1,14 @@
+//@ compile-flags: -Zmir-enable-passes=+Inline,+GVN --crate-type lib
+//@ revisions: ASSERT NOASSERT
+//@[ASSERT] compile-flags: -Coverflow-checks=on
+//@[NOASSERT] compile-flags: -Coverflow-checks=off
+
+// CHECK-LABEL: define{{.*}} @assertion
+// ASSERT: call void @{{.*4core9panicking11panic_const24panic_const_add_overflow}}
+// NOASSERT: ret i8 0
+#[no_mangle]
+pub fn assertion() -> u8 {
+    // Optimized MIR will replace this `CheckedBinaryOp` by `const (0, true)`.
+    // Verify that codegen does or does not emit the panic.
+    <u8 as std::ops::Add>::add(255, 1)
+}