|
clang 24.0.0git
|
Abstract interface for operations requiring Sema access. More...
#include "clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h"
Public Types | |
| using | EscapingTarget |
Public Member Functions | |
| LifetimeSafetySemaHelper ()=default | |
| virtual | ~LifetimeSafetySemaHelper ()=default |
| virtual void | reportUseAfterScope (const Expr *IssueExpr, const Expr *UseExpr, const Expr *MovedExpr, SourceLocation FreeLoc, llvm::ArrayRef< const Expr * > ExprChain) |
| virtual void | reportUseAfterReturn (const Expr *IssueExpr, const Expr *ReturnExpr, const Expr *MovedExpr) |
| virtual void | reportDanglingField (const Expr *IssueExpr, const FieldDecl *Field, const Expr *MovedExpr, SourceLocation ExpiryLoc) |
| virtual void | reportDanglingGlobal (const Expr *IssueExpr, const VarDecl *DanglingGlobal, const Expr *MovedExpr, SourceLocation ExpiryLoc) |
| virtual void | reportUseAfterInvalidation (const Expr *IssueExpr, const Expr *UseExpr, const Expr *InvalidationExpr, llvm::ArrayRef< const Expr * > ExprChain) |
| virtual void | reportUseAfterInvalidation (const ParmVarDecl *PVD, const Expr *UseExpr, const Expr *InvalidationExpr, llvm::ArrayRef< const Expr * > ExprChain) |
| virtual void | reportInvalidatedField (const Expr *IssueExpr, const FieldDecl *Field, const Expr *InvalidationExpr) |
| virtual void | reportInvalidatedField (const ParmVarDecl *PVD, const FieldDecl *Field, const Expr *InvalidationExpr) |
| virtual void | reportInvalidatedGlobal (const Expr *IssueExpr, const VarDecl *Global, const Expr *InvalidationExpr) |
| virtual void | reportInvalidatedGlobal (const ParmVarDecl *PVD, const VarDecl *Global, const Expr *InvalidationExpr) |
| virtual void | suggestLifetimeboundToParmVar (WarningScope Scope, const ParmVarDecl *ParmToAnnotate, EscapingTarget Target) |
| virtual void | reportNoescapeViolation (const ParmVarDecl *ParmWithNoescape, const Expr *EscapeExpr) |
| virtual void | reportNoescapeViolation (const ParmVarDecl *ParmWithNoescape, const FieldDecl *EscapeField) |
| virtual void | reportNoescapeViolation (const ParmVarDecl *ParmWithNoescape, const VarDecl *EscapeGlobal) |
| virtual void | reportLifetimeboundViolation (const ParmVarDecl *ParmWithLifetimebound) |
| virtual void | reportLifetimeboundViolation (const CXXMethodDecl *MDWithLifetimebound) |
| virtual void | reportMisplacedLifetimebound (WarningScope Scope, const CXXMethodDecl *FDef, const CXXMethodDecl *FDecl) |
| virtual void | reportMisplacedLifetimebound (WarningScope Scope, const ParmVarDecl *PVDDef, const ParmVarDecl *PVDDecl) |
| virtual void | reportInapplicableLifetimebound (const ParmVarDecl *PVD) |
| virtual void | suggestLifetimeboundToImplicitThis (WarningScope Scope, const CXXMethodDecl *MD, const Expr *EscapeExpr) |
| virtual void | addLifetimeBoundToImplicitThis (const CXXMethodDecl *MD) |
Abstract interface for operations requiring Sema access.
This class exists to break a circular dependency: the LifetimeSafety analysis target cannot directly depend on clangSema (which would create the cycle: clangSema -> clangAnalysis -> clangAnalysisLifetimeSafety -> clangSema).
Instead, this interface is implemented in AnalysisBasedWarnings.cpp (part of clangSema), allowing the analysis to report diagnostics and modify the AST through Sema without introducing a circular dependency.
Definition at line 62 of file LifetimeSafety.h.
Definition at line 109 of file LifetimeSafety.h.
|
default |
|
virtualdefault |
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 159 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 76 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 81 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 150 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 96 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 99 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 102 of file LifetimeSafety.h.
References clang::Global.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 105 of file LifetimeSafety.h.
References clang::Global.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 136 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 131 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 140 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 146 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 118 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 121 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 125 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 89 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 93 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 72 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 67 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 153 of file LifetimeSafety.h.
|
inlinevirtual |
Reimplemented in clang::lifetimes::LifetimeSafetySemaHelperImpl.
Definition at line 113 of file LifetimeSafety.h.
References clang::Target.