about summary refs log tree commit diff
path: root/compiler/rustc_lint/src/lints.rs
diff options
context:
space:
mode:
authorUrgau <urgau@numericable.fr>2025-07-22 20:54:22 +0200
committerUrgau <urgau@numericable.fr>2025-07-31 22:35:22 +0200
commit8a3a7e625a8b607c018cdcf776fa79e29eaa56c8 (patch)
treeb34ccaa4dda9cf5e46ce33ace6ac34fc28be5af3 /compiler/rustc_lint/src/lints.rs
parentadcb3d3b4cd3b7c4cde642f3ed537037f293738e (diff)
downloadrust-8a3a7e625a8b607c018cdcf776fa79e29eaa56c8.tar.gz
rust-8a3a7e625a8b607c018cdcf776fa79e29eaa56c8.zip
Add lint against dangling pointers form local variables
Diffstat (limited to 'compiler/rustc_lint/src/lints.rs')
-rw-r--r--compiler/rustc_lint/src/lints.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/compiler/rustc_lint/src/lints.rs b/compiler/rustc_lint/src/lints.rs
index fd8d0f832aa..ef63c0dee8c 100644
--- a/compiler/rustc_lint/src/lints.rs
+++ b/compiler/rustc_lint/src/lints.rs
@@ -1188,6 +1188,22 @@ pub(crate) struct DanglingPointersFromTemporaries<'tcx> {
     pub temporary_span: Span,
 }
 
+#[derive(LintDiagnostic)]
+#[diag(lint_dangling_pointers_from_locals)]
+#[note]
+pub(crate) struct DanglingPointersFromLocals<'tcx> {
+    pub ret_ty: Ty<'tcx>,
+    #[label(lint_ret_ty)]
+    pub ret_ty_span: Span,
+    pub fn_kind: &'static str,
+    #[label(lint_local_var)]
+    pub local_var: Span,
+    pub local_var_name: Ident,
+    pub local_var_ty: Ty<'tcx>,
+    #[label(lint_created_at)]
+    pub created_at: Option<Span>,
+}
+
 // multiple_supertrait_upcastable.rs
 #[derive(LintDiagnostic)]
 #[diag(lint_multiple_supertrait_upcastable)]