diff options
| author | Urgau <urgau@numericable.fr> | 2025-07-22 20:54:22 +0200 |
|---|---|---|
| committer | Urgau <urgau@numericable.fr> | 2025-07-31 22:35:22 +0200 |
| commit | 8a3a7e625a8b607c018cdcf776fa79e29eaa56c8 (patch) | |
| tree | b34ccaa4dda9cf5e46ce33ace6ac34fc28be5af3 /compiler/rustc_lint/src/lints.rs | |
| parent | adcb3d3b4cd3b7c4cde642f3ed537037f293738e (diff) | |
| download | rust-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.rs | 16 |
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)] |
