================ @@ -268,6 +268,69 @@ static void CheckStringInit(Expr *Str, QualType &DeclT, const ArrayType *AT, updateStringLiteralType(Str, DeclT); } +template <class Predicate, class RecordFilter> +std::enable_if_t<std::is_void_v<decltype(std::declval<Predicate &>()( + std::declval<const FieldDecl *>()))>, + size_t> +forEachFieldRecursive(const RecordDecl *Record, Predicate FieldPred, + RecordFilter RecordPreFilter) { + size_t NumFound = 0; + SmallVector<const RecordDecl *> Stack; + llvm::SmallDenseSet<const RecordDecl *> Seen; + Stack.push_back(Record); + while (!Stack.empty()) { + const RecordDecl *RD = Stack.back(); + Stack.pop_back(); + const size_t OldStackSize = Stack.size(); + if (RD) { + RD = dyn_cast_if_present<RecordDecl>(RD->getCanonicalDecl()); ---------------- higher-performance wrote:
Removed. https://github.com/llvm/llvm-project/pull/102040 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits