================ @@ -2056,40 +2056,41 @@ void CXXRecordDecl::completeDefinition() { completeDefinition(nullptr); } +static bool hasPureVirtualFinalOverrider( + const CXXRecordDecl &RD, const CXXFinalOverriderMap *FinalOverriders) { + auto ExistsIn = [](const CXXFinalOverriderMap &FinalOverriders) { + for (const CXXFinalOverriderMap::value_type & + OverridingMethodsEntry : FinalOverriders) { + for (const auto &[_, SubobjOverrides] : OverridingMethodsEntry.second) { + assert(SubobjOverrides.size() > 0 && + "All virtual functions have overriding virtual functions"); + + if (SubobjOverrides.front().Method->isPureVirtual()) + return true; + } + } + return false; + }; + + if (FinalOverriders) + return ExistsIn(*FinalOverriders); + CXXFinalOverriderMap MyFinalOverriders; + RD.getFinalOverriders(MyFinalOverriders); + return ExistsIn(MyFinalOverriders); ---------------- MagentaTreehouse wrote:
Done https://github.com/llvm/llvm-project/pull/96831 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits