| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:10:5 |
| | |
| LL | fn simple() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 0; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | &x |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| = note: `#[warn(dangling_pointers_from_locals)]` on by default |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:17:5 |
| | |
| LL | fn bindings() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 0; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | let x = &x; |
| | -- dangling pointer created here |
| LL | x |
| | ^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:24:12 |
| | |
| LL | fn bindings_with_return() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 42; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | let y = &x; |
| | -- dangling pointer created here |
| LL | return y; |
| | ^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:30:5 |
| | |
| LL | fn with_simple_cast() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 0u8; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | &x as *const u8 |
| | --^^^^^^^^^^^^^ |
| | | |
| | dangling pointer created here |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:37:5 |
| | |
| LL | fn bindings_and_casts() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 0u8; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | let x = &x as *const u8; |
| | -- dangling pointer created here |
| LL | x as *const u8 |
| | ^^^^^^^^^^^^^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:43:12 |
| | |
| LL | fn return_with_complex_cast() -> *mut u8 { |
| | ------- return type of the function is `*mut u8` |
| LL | let mut x = 0u8; |
| | ----- `x` is part the function and will be dropped at the end of the function |
| LL | return &mut x as *mut u8 as *const u8 as *mut u8; |
| | ------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| | | |
| | dangling pointer created here |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:49:5 |
| | |
| LL | fn with_block() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 0; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | &{ x } |
| | ^^^^^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:57:13 |
| | |
| LL | fn with_many_blocks() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 0; |
| | - `x` is part the function and will be dropped at the end of the function |
| ... |
| LL | / &{ |
| LL | | |
| LL | | { x } |
| LL | | } |
| | |_____________^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:67:12 |
| | |
| LL | fn simple_return() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | let x = 0; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | return &x; |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:73:12 |
| | |
| LL | fn return_mut() -> *mut u8 { |
| | ------- return type of the function is `*mut u8` |
| LL | let mut x = 0; |
| | ----- `x` is part the function and will be dropped at the end of the function |
| LL | return &mut x; |
| | ^^^^^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:80:16 |
| | |
| LL | fn const_and_flow() -> *const u8 { |
| | --------- return type of the function is `*const u8` |
| LL | if false { |
| LL | let x = 8; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | return &x; |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:88:5 |
| | |
| LL | fn vector<T: Default>() -> *const Vec<T> { |
| | ------------- return type of the function is `*const Vec<T>` |
| LL | let x = vec![T::default()]; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | &x |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `Vec<T>` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:94:12 |
| | |
| LL | fn local_adt() -> *const Adt { |
| | ---------- return type of the function is `*const Adt` |
| LL | let x = Adt(5); |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | return &x; |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `Adt` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:101:16 |
| | |
| LL | let _x = || -> *const u8 { |
| | --------- return type of the closure is `*const u8` |
| LL | let x = 8; |
| | - `x` is part the closure and will be dropped at the end of the closure |
| LL | return &x; |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `u8` will be deallocated at the end of the closure because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `x` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:113:5 |
| | |
| LL | fn fn_ptr() -> *const fn() -> u8 { |
| | ----------------- return type of the function is `*const fn() -> u8` |
| ... |
| LL | let x = ret_u8 as fn() -> u8; |
| | - `x` is part the function and will be dropped at the end of the function |
| LL | &x |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `fn() -> u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `a` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:118:5 |
| | |
| LL | fn as_arg(a: Adt) -> *const Adt { |
| | - ---------- return type of the function is `*const Adt` |
| | | |
| | `a` is part the function and will be dropped at the end of the function |
| LL | &a |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `Adt` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `a` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:123:5 |
| | |
| LL | fn fn_ptr_as_arg(a: fn() -> u8) -> *const fn() -> u8 { |
| | - ----------------- return type of the function is `*const fn() -> u8` |
| | | |
| | `a` is part the function and will be dropped at the end of the function |
| LL | &a |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `fn() -> u8` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `a` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:128:5 |
| | |
| LL | fn ptr_as_arg(a: *const Adt) -> *const *const Adt { |
| | - ----------------- return type of the function is `*const *const Adt` |
| | | |
| | `a` is part the function and will be dropped at the end of the function |
| LL | &a |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `*const Adt` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: a dangling pointer will be produced because the local variable `a` will be dropped |
| --> $DIR/dangling-pointers-from-locals.rs:133:5 |
| | |
| LL | fn adt_as_arg(a: &Adt) -> *const &Adt { |
| | - ----------- return type of the function is `*const &Adt` |
| | | |
| | `a` is part the function and will be dropped at the end of the function |
| LL | &a |
| | ^^ |
| | |
| = note: pointers do not have a lifetime; after returning, the `&Adt` will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned |
| |
| warning: 19 warnings emitted |
| |