Skip to content

Commit

Permalink
Add codegen test
Browse files Browse the repository at this point in the history
  • Loading branch information
AnthonyMikh committed Oct 7, 2020
1 parent 981cb8c commit e699e83
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions src/test/codegen/slice-windows-no-bounds-check.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#![crate_type = "lib"]

// compile-flags: -O

use std::slice::Windows;

// CHECK-LABEL: @naive_string_search
#[no_mangle]
pub fn naive_string_search(haystack: &str, needle: &str) -> Option<usize> {
if needle.is_empty() {
return Some(0);
}
// CHECK-NOT: panic
// CHECK-NOT: fail
haystack
.as_bytes()
.windows(needle.len())
.position(|sub| sub == needle.as_bytes())
}

// CHECK-LABEL: @next
#[no_mangle]
pub fn next<'a>(w: &mut Windows<'a, u32>) -> Option<&'a [u32]> {
// CHECK-NOT: panic
// CHECK-NOT: fail
w.next()
}

// CHECK-LABEL: @next_back
#[no_mangle]
pub fn next_back<'a>(w: &mut Windows<'a, u32>) -> Option<&'a [u32]> {
// CHECK-NOT: panic
// CHECK-NOT: fail
w.next_back()
}

0 comments on commit e699e83

Please sign in to comment.