================ @@ -0,0 +1,72 @@ +//===- AssignmentQuery.cpp - C++ Lifetime Safety Checker --------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file implements the LifetimeChecker, which detects use-after-free +// errors by checking if live origins hold loans that have expired. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_ANALYSIS_ANALYSES_ASSIGNMENTQUERY_H +#define LLVM_CLANG_ANALYSIS_ANALYSES_ASSIGNMENTQUERY_H + +#include "clang/AST/Decl.h" +#include "clang/Analysis/Analyses/LifetimeSafety/Facts.h" +#include "clang/Analysis/Analyses/LifetimeSafety/LiveOrigins.h" +#include "clang/Analysis/Analyses/LifetimeSafety/LoanPropagation.h" +#include "clang/Analysis/Analyses/LifetimeSafety/MovedLoans.h" +#include "clang/Analysis/Analyses/LifetimeSafety/Origins.h" +#include "clang/Analysis/AnalysisDeclContext.h" + +namespace clang::lifetimes { + +using OriginDestExpr = + llvm::PointerUnion<const DeclRefExpr *, const ValueDecl *, + const MemberExpr *>; +using LoanEntity = llvm::PointerUnion<const Expr *, const ParmVarDecl *, ---------------- Xazax-hun wrote:
I'd expect us to have this type alias or something similar somewhere else. E.g., where loans are defined. If not, we should move it there to reduce the risk of this getting out of sync with loans. Similar concerns about the `OriginDestExpr` above. https://github.com/llvm/llvm-project/pull/188467 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
