rjmccall added a comment. Thanks, that's a lot better. Just some minor suggestions.
================ Comment at: clang/lib/CodeGen/CGObjC.cpp:477 + // If there are no non-runtime protocols then we can just stop now. + if (!NonRuntimePDs.size()) + return RuntimePds; ---------------- `empty()`, please ================ Comment at: clang/lib/CodeGen/CGObjC.cpp:487 + + // Walk both lists to get the full set of implied protocols + llvm::DenseSet<const ObjCProtocolDecl *> AllImpliedProtocols; ---------------- You should add something like ", including all the runtime protocols but not the non-runtime protocols". ================ Comment at: clang/lib/CodeGen/CGObjC.cpp:499 + + for (const auto *PD : ResolvedProtos) { + if (!AllImpliedProtocols.contains(PD)) { ---------------- Comment on this pass. ================ Comment at: clang/lib/CodeGen/CGObjC.cpp:501 + if (!AllImpliedProtocols.contains(PD)) { + const auto *Can = PD->getCanonicalDecl(); + RuntimePds.push_back(Can); ---------------- PD is already canonical here (and if it weren't, looking in `AllImpliedProtocols` wouldn't work). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75574/new/ https://reviews.llvm.org/D75574 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits