Skip to content

Commit

Permalink
Add codegen tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bugadani committed Aug 31, 2020
1 parent c88b167 commit 1d157ce
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
25 changes: 25 additions & 0 deletions src/test/codegen/enum-bounds-check-derived-idx.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// This test checks an optimization that is not guaranteed to work. This test case should not block
// a future LLVM update.
// compile-flags: -O
// min-llvm-version: 11.0

#![crate_type = "lib"]

pub enum Bar {
A = 1,
B = 3,
}

// CHECK-LABEL: @lookup_inc
#[no_mangle]
pub fn lookup_inc(buf: &[u8; 5], f: Bar) -> u8 {
// CHECK-NOT: panic_bounds_check
buf[f as usize + 1]
}

// CHECK-LABEL: @lookup_dec
#[no_mangle]
pub fn lookup_dec(buf: &[u8; 5], f: Bar) -> u8 {
// CHECK-NOT: panic_bounds_check
buf[f as usize - 1]
}
19 changes: 19 additions & 0 deletions src/test/codegen/enum-bounds-check-issue-13926.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// This test checks an optimization that is not guaranteed to work. This test case should not block
// a future LLVM update.
// compile-flags: -O
// min-llvm-version: 11.0

#![crate_type = "lib"]

#[repr(u8)]
pub enum Exception {
Low = 5,
High = 10,
}

// CHECK-LABEL: @access
#[no_mangle]
pub fn access(array: &[usize; 12], exc: Exception) -> usize {
// CHECK-NOT: panic_bounds_check
array[(exc as u8 - 4) as usize]
}
12 changes: 12 additions & 0 deletions src/test/codegen/enum-bounds-check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,15 @@ pub fn lookup(buf: &[u8; 2], f: Foo) -> u8 {
// CHECK-NOT: panic_bounds_check
buf[f as usize]
}

pub enum Bar {
A = 2,
B = 3
}

// CHECK-LABEL: @lookup_unmodified
#[no_mangle]
pub fn lookup_unmodified(buf: &[u8; 5], f: Bar) -> u8 {
// CHECK-NOT: panic_bounds_check
buf[f as usize]
}

0 comments on commit 1d157ce

Please sign in to comment.