diff options
| author | Alex Huang <huangalex409@gmail.com> | 2024-01-30 14:37:59 -0500 |
|---|---|---|
| committer | Alex Huang <huangalex409@gmail.com> | 2024-01-30 14:37:59 -0500 |
| commit | a97ff2a750edf9ba4a9cdfd72f419f6836fe6b2d (patch) | |
| tree | 1051e6c51716eb5461addb1cf218ede07c028e63 /tests/codegen | |
| parent | 7bdf705dd72edb9febe527c580a476d5d5f2f992 (diff) | |
| download | rust-a97ff2a750edf9ba4a9cdfd72f419f6836fe6b2d.tar.gz rust-a97ff2a750edf9ba4a9cdfd72f419f6836fe6b2d.zip | |
Add additional test cases for is_val_statically_known
Diffstat (limited to 'tests/codegen')
| -rw-r--r-- | tests/codegen/is_val_statically_known.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/codegen/is_val_statically_known.rs b/tests/codegen/is_val_statically_known.rs index 44187d4f667..8f084f6c54b 100644 --- a/tests/codegen/is_val_statically_known.rs +++ b/tests/codegen/is_val_statically_known.rs @@ -46,3 +46,41 @@ pub fn _bool_false(b: bool) -> i32 { // CHECK: ret i32 2 _bool(b) } + +#[inline] +pub fn _iref(a: &u8) -> i32 { + if unsafe { is_val_statically_known(a) } { 5 } else { 4 } +} + +// CHECK-LABEL: @_iref_borrow( +#[no_mangle] +pub fn _iref_borrow() -> i32 { + // CHECK: ret i32 4 + _iref(&0) +} + +// CHECK-LABEL: @_iref_arg( +#[no_mangle] +pub fn _iref_arg(a: &u8) -> i32 { + // CHECK: ret i32 4 + _iref(a) +} + +#[inline] +pub fn _slice_ref(a: &[u8]) -> i32 { + if unsafe { is_val_statically_known(a) } { 7 } else { 6 } +} + +// CHECK-LABEL: @_slice_ref_borrow( +#[no_mangle] +pub fn _slice_ref_borrow() -> i32 { + // CHECK: ret i32 6 + _slice_ref(&[0;3]) +} + +// CHECK-LABEL: @_slice_ref_arg( +#[no_mangle] +pub fn _slice_ref_arg(a: &[u8]) -> i32 { + // CHECK: ret i32 6 + _slice_ref(a) +} |
