[clang] [LifetimeSafety] Introduce buildOriginFlowChain for use-after-scope (PR #199345)
Utkarsh Saxena via cfe-commits
cfe-commits at lists.llvm.org
Sun May 24 10:00:23 PDT 2026
================
@@ -54,14 +54,24 @@ inline bool IsLifetimeSafetyEnabled(Sema &S, const Decl *D) {
return false;
}
+inline StringRef formatExpr(const Expr *E) {
+ const Expr *PureExpr = E->IgnoreImpCasts();
+ if (const DeclRefExpr *DRExpr = dyn_cast<DeclRefExpr>(PureExpr))
+ return DRExpr->getDecl()->getName();
+
+ // TODO: Add support for more expression types.
+ return "";
+}
+
class LifetimeSafetySemaHelperImpl : public LifetimeSafetySemaHelper {
public:
LifetimeSafetySemaHelperImpl(Sema &S) : S(S) {}
- void reportUseAfterScope(const Expr *IssueExpr, const Expr *UseExpr,
- const Expr *MovedExpr,
- SourceLocation FreeLoc) override {
+ void reportUseAfterScope(
+ const Expr *IssueExpr, const Expr *UseExpr, const Expr *MovedExpr,
+ SourceLocation FreeLoc,
+ llvm::SmallVector<const Expr *> OriginExprChain) override {
----------------
usx95 wrote:
Use `llvm::ArrayRef<const Expr *>` to avoid copying this.
https://github.com/llvm/llvm-project/pull/199345
More information about the cfe-commits
mailing list