about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArthur Lafrance <lafrancearthur@gmail.com>2023-09-21 20:42:21 -0700
committerArthur Lafrance <lafrancearthur@gmail.com>2023-09-21 20:42:21 -0700
commitd5ec9af09da9f6d96b350ee53fffdad58721d32e (patch)
tree5561fb65e1729dc7e59af42894381d18cbfb3b6e
parentb7573187180a6ad13ba557f85b7e19a51f8fdaf1 (diff)
downloadrust-d5ec9af09da9f6d96b350ee53fffdad58721d32e.tar.gz
rust-d5ec9af09da9f6d96b350ee53fffdad58721d32e.zip
Add test to guard against VecDeque optimization regression
-rw-r--r--tests/codegen/vecdeque-nonempty-get-no-panic.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/codegen/vecdeque-nonempty-get-no-panic.rs b/tests/codegen/vecdeque-nonempty-get-no-panic.rs
new file mode 100644
index 00000000000..c2877d2d0ca
--- /dev/null
+++ b/tests/codegen/vecdeque-nonempty-get-no-panic.rs
@@ -0,0 +1,17 @@
+// Guards against regression for optimization discussed in issue #80836
+
+// compile-flags: -O
+// ignore-debug: the debug assertions get in the way
+
+#![crate_type = "lib"]
+
+use std::collections::VecDeque;
+
+// CHECK-LABEL: @front
+// CHECK: ret void
+#[no_mangle]
+pub fn front(v: VecDeque<usize>) {
+    if !v.is_empty() {
+        v.get(0).unwrap();
+    }
+}