diff options
| -rw-r--r-- | src/test/ui/lint/lint-temporary-cstring-as-ptr.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/lint/lint-temporary-cstring-as-ptr.stderr | 16 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/lint/lint-temporary-cstring-as-ptr.rs b/src/test/ui/lint/lint-temporary-cstring-as-ptr.rs new file mode 100644 index 00000000000..3ca6ee5439c --- /dev/null +++ b/src/test/ui/lint/lint-temporary-cstring-as-ptr.rs @@ -0,0 +1,8 @@ +// check-fail +// ignore-tidy-linelength + +use std::ffi::CString; + +fn main() { + let s = CString::new("some text").unwrap().as_ptr(); //~ ERROR you are getting the inner pointer of a temporary `CString` +} diff --git a/src/test/ui/lint/lint-temporary-cstring-as-ptr.stderr b/src/test/ui/lint/lint-temporary-cstring-as-ptr.stderr new file mode 100644 index 00000000000..7cbb14a8f4e --- /dev/null +++ b/src/test/ui/lint/lint-temporary-cstring-as-ptr.stderr @@ -0,0 +1,16 @@ +error: you are getting the inner pointer of a temporary `CString` + --> $DIR/lint-temporary-cstring-as-ptr.rs:7:13 + | +LL | let s = CString::new("some text").unwrap().as_ptr(); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[deny(temporary_cstring_as_ptr)]` on by default + = note: that pointer will be invalid outside this expression +help: assign the `CString` to a variable to extend its lifetime + --> $DIR/lint-temporary-cstring-as-ptr.rs:7:13 + | +LL | let s = CString::new("some text").unwrap().as_ptr(); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + |
