about summary refs log tree commit diff
path: root/tests/ui/lint/dangling-pointers-from-temporaries/example-from-issue123613.rs
blob: 0fb07a3f3bc9777d554348c73238bfb5ab1136a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
#![deny(dangling_pointers_from_temporaries)]

const MAX_PATH: usize = 260;
fn main() {
    let str1 = String::with_capacity(MAX_PATH).as_mut_ptr();
    //~^ ERROR a dangling pointer will be produced because the temporary `String` will be dropped
    let str2 = String::from("TotototototototototototototototototoT").as_ptr();
    //~^ ERROR a dangling pointer will be produced because the temporary `String` will be dropped
    unsafe {
        std::ptr::copy_nonoverlapping(str2, str1, 30);
        println!("{:?}", String::from_raw_parts(str1, 30, 30));
    }
}