about summary refs log tree commit diff
path: root/tests/ui/lint/dangling-pointers-from-temporaries/allow.stderr
blob: e1c12cfd1a5015e292b989c8cba13b5709828941 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
error: a dangling pointer will be produced because the temporary `String` will be dropped
  --> $DIR/allow.rs:9:28
   |
LL |         dbg!(String::new().as_ptr());
   |              ------------- ^^^^^^ this pointer will immediately be invalid
   |              |
   |              this `String` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
   |
   = note: pointers do not have a lifetime; when calling `as_ptr` the `String` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
   = help: you must make sure that the variable you bind the `String` to lives at least as long as the pointer returned by the call to `as_ptr`
   = help: in particular, if this pointer is returned from the current function, binding the `String` inside the function will not suffice
   = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
note: the lint level is defined here
  --> $DIR/allow.rs:7:12
   |
LL |     #[deny(dangling_pointers_from_temporaries)]
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: a dangling pointer will be produced because the temporary `String` will be dropped
  --> $DIR/allow.rs:20:28
   |
LL |         dbg!(String::new().as_ptr());
   |              ------------- ^^^^^^ this pointer will immediately be invalid
   |              |
   |              this `String` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
   |
   = note: pointers do not have a lifetime; when calling `as_ptr` the `String` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
   = help: you must make sure that the variable you bind the `String` to lives at least as long as the pointer returned by the call to `as_ptr`
   = help: in particular, if this pointer is returned from the current function, binding the `String` inside the function will not suffice
   = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
note: the lint level is defined here
  --> $DIR/allow.rs:18:12
   |
LL |     #[warn(dangling_pointers_from_temporaries)]
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 1 previous error; 1 warning emitted