|  | //@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled | 
|  |  | 
|  | #![crate_type = "lib"] | 
|  |  | 
|  | // Test that even though we return a *const u8 not a &[u8] or a NonNull<u8>, LLVM knows that this | 
|  | // pointer is nonnull. | 
|  | // CHECK: nonnull ptr @vec_as_ptr | 
|  | #[no_mangle] | 
|  | pub fn vec_as_ptr(v: &Vec<u8>) -> *const u8 { | 
|  | v.as_ptr() | 
|  | } | 
|  |  | 
|  | // Test that even though we return a *const u8 not a &[u8] or a NonNull<u8>, LLVM knows that this | 
|  | // pointer is nonnull. | 
|  | // CHECK: nonnull ptr @vec_as_mut_ptr | 
|  | #[no_mangle] | 
|  | pub fn vec_as_mut_ptr(v: &mut Vec<u8>) -> *mut u8 { | 
|  | v.as_mut_ptr() | 
|  | } |