Lines Matching defs:IndirectLocalPathEntry

194 struct IndirectLocalPathEntry {
215 IndirectLocalPathEntry() {}
216 IndirectLocalPathEntry(EntryKind K, Expr *E) : Kind(K), E(E) {}
217 IndirectLocalPathEntry(EntryKind K, Expr *E, const Decl *D)
219 IndirectLocalPathEntry(EntryKind K, Expr *E, const LambdaCapture *Capture)
223 using IndirectLocalPath = llvm::SmallVectorImpl<IndirectLocalPathEntry>;
238 if (E.Kind == IndirectLocalPathEntry::VarInit && E.D == VD)
244 return llvm::any_of(Path, [=](IndirectLocalPathEntry E) {
245 return E.Kind == IndirectLocalPathEntry::DefaultInit ||
246 E.Kind == IndirectLocalPathEntry::VarInit;
588 Path.push_back({IndirectLocalPathEntry::LifetimeBoundCall, Arg, D});
603 for (const IndirectLocalPathEntry &PE : llvm::reverse(Path)) {
604 if (PE.Kind == IndirectLocalPathEntry::GslReferenceInit ||
605 PE.Kind == IndirectLocalPathEntry::LifetimeBoundCall)
607 if (PE.Kind == IndirectLocalPathEntry::GslPointerInit ||
608 PE.Kind == IndirectLocalPathEntry::GslPointerAssignment)
614 ? IndirectLocalPathEntry::GslReferenceInit
615 : IndirectLocalPathEntry::GslPointerInit,
658 {IndirectLocalPathEntry::DefaultArg, DAE, DAE->getParam()});
719 {IndirectLocalPathEntry::MemberExpr, ME, ME->getMemberDecl()});
747 {IndirectLocalPathEntry::DefaultInit, DIE, DIE->getField()});
782 Path.push_back({IndirectLocalPathEntry::VarInit, DRE, VD});
846 {IndirectLocalPathEntry::DefaultInit, DIE, DIE->getField()});
867 Path.push_back({IndirectLocalPathEntry::LValToRVal, CE});
875 Path.push_back({IndirectLocalPathEntry::VarInit, DRE, VD});
913 Path.push_back({IndirectLocalPathEntry::AddressOf, CE});
997 Path.push_back({IndirectLocalPathEntry::LambdaCaptureInit, E, &Cap});
1014 Path.push_back({IndirectLocalPathEntry::TemporaryCopy, Arg,
1027 Path.push_back({IndirectLocalPathEntry::ParenAggInit, CPE});
1048 Path.push_back({IndirectLocalPathEntry::AddressOf, UO});
1111 if (Elem.Kind == IndirectLocalPathEntry::MemberExpr ||
1112 Elem.Kind == IndirectLocalPathEntry::LambdaCaptureInit)
1114 return Elem.Kind == IndirectLocalPathEntry::DefaultInit
1126 case IndirectLocalPathEntry::AddressOf:
1127 case IndirectLocalPathEntry::LValToRVal:
1128 case IndirectLocalPathEntry::LifetimeBoundCall:
1129 case IndirectLocalPathEntry::TemporaryCopy:
1130 case IndirectLocalPathEntry::GslReferenceInit:
1131 case IndirectLocalPathEntry::GslPointerInit:
1132 case IndirectLocalPathEntry::GslPointerAssignment:
1133 case IndirectLocalPathEntry::ParenAggInit:
1134 case IndirectLocalPathEntry::MemberExpr:
1139 case IndirectLocalPathEntry::VarInit:
1143 case IndirectLocalPathEntry::DefaultInit:
1146 case IndirectLocalPathEntry::LambdaCaptureInit:
1151 case IndirectLocalPathEntry::DefaultArg:
1161 case IndirectLocalPathEntry::VarInit:
1162 case IndirectLocalPathEntry::AddressOf:
1163 case IndirectLocalPathEntry::LifetimeBoundCall:
1164 case IndirectLocalPathEntry::MemberExpr:
1166 case IndirectLocalPathEntry::GslPointerInit:
1167 case IndirectLocalPathEntry::GslReferenceInit:
1168 case IndirectLocalPathEntry::GslPointerAssignment:
1200 if (E.Kind == IndirectLocalPathEntry::MemberExpr) {
1226 if (Path.back().Kind == IndirectLocalPathEntry::LifetimeBoundCall) {
1424 Path.back().Kind != IndirectLocalPathEntry::DefaultInit) {
1538 case IndirectLocalPathEntry::AddressOf:
1539 case IndirectLocalPathEntry::LValToRVal:
1540 case IndirectLocalPathEntry::ParenAggInit:
1545 case IndirectLocalPathEntry::LifetimeBoundCall:
1546 case IndirectLocalPathEntry::TemporaryCopy:
1547 case IndirectLocalPathEntry::MemberExpr:
1548 case IndirectLocalPathEntry::GslPointerInit:
1549 case IndirectLocalPathEntry::GslReferenceInit:
1550 case IndirectLocalPathEntry::GslPointerAssignment:
1554 case IndirectLocalPathEntry::DefaultInit: {
1562 case IndirectLocalPathEntry::VarInit: {
1570 case IndirectLocalPathEntry::LambdaCaptureInit: {
1584 case IndirectLocalPathEntry::DefaultArg: {
1600 llvm::SmallVector<IndirectLocalPathEntry, 8> Path;
1606 ? IndirectLocalPathEntry::LifetimeBoundCall
1607 : IndirectLocalPathEntry::GslPointerAssignment,
1613 Path.push_back({IndirectLocalPathEntry::GslPointerInit, Init});