|
| | LifetimeSafetySemaHelper ()=default |
| virtual | ~LifetimeSafetySemaHelper ()=default |
| virtual void | reportUseAfterFree (const Expr *IssueExpr, const Expr *UseExpr, SourceLocation FreeLoc, Confidence Confidence) |
| virtual void | reportUseAfterReturn (const Expr *IssueExpr, const Expr *ReturnExpr, SourceLocation ExpiryLoc, Confidence Confidence) |
| virtual void | reportDanglingField (const Expr *IssueExpr, const FieldDecl *Field, SourceLocation ExpiryLoc) |
| virtual void | suggestLifetimeboundToParmVar (SuggestionScope Scope, const ParmVarDecl *ParmToAnnotate, const Expr *EscapeExpr) |
| virtual void | reportNoescapeViolation (const ParmVarDecl *ParmWithNoescape, const Expr *EscapeExpr) |
| virtual void | reportNoescapeViolation (const ParmVarDecl *ParmWithNoescape, const FieldDecl *EscapeField) |
| virtual void | suggestLifetimeboundToImplicitThis (SuggestionScope 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 55 of file LifetimeSafety.h.