diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-05-27 14:45:45 -0700 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-05-28 09:28:51 -0700 |
| commit | 57948c84ecf654bdbf29adcee095e7e10b1c0640 (patch) | |
| tree | 0e8c7ea0552c18d13fc9b7f0c2ec60d633695c57 | |
| parent | 5a8c1f372a009f11f7bfd0319dc1293ed40b5f22 (diff) | |
Add Miri smoke pass test for ptr_metadata intrinsic
| -rw-r--r-- | src/tools/miri/tests/pass/intrinsics/intrinsics.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/tools/miri/tests/pass/intrinsics/intrinsics.rs b/src/tools/miri/tests/pass/intrinsics/intrinsics.rs index 0dda5aadce2..89289a25d50 100644 --- a/src/tools/miri/tests/pass/intrinsics/intrinsics.rs +++ b/src/tools/miri/tests/pass/intrinsics/intrinsics.rs @@ -1,5 +1,5 @@ //@compile-flags: -Zmiri-permissive-provenance -#![feature(core_intrinsics, layout_for_ptr)] +#![feature(core_intrinsics, layout_for_ptr, ptr_metadata)] //! Tests for various intrinsics that do not fit anywhere else. use std::intrinsics; @@ -57,4 +57,10 @@ fn main() { // Make sure that even if the discriminant is stored together with data, the intrinsic returns // only the discriminant, nothing about the data. assert_eq!(discriminant(&Some(false)), discriminant(&Some(true))); + + let () = intrinsics::ptr_metadata(&[1, 2, 3]); + let len = intrinsics::ptr_metadata(&[1, 2, 3][..]); + assert_eq!(len, 3); + let dyn_meta = intrinsics::ptr_metadata(&[1, 2, 3] as &dyn std::fmt::Debug); + assert_eq!(dyn_meta.size_of(), 12); } |
