[PATCH] D88832: [TableGen] Add new getAllDerivedDefinitionsTwo function to RecordKeeper

Paul C. Anagnostopoulos via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 8 10:39:04 PDT 2020


Paul-C-Anagnostopoulos added inline comments.


================
Comment at: llvm/lib/TableGen/Record.cpp:2493-2500
+    AddDef = true;
+    for (auto *const Class : ClassRecs)
+      if (!OneDef.second->isSubClassOf(Class)) {
+        AddDef = false;
+        break;
+      }
+    if (AddDef)
----------------
Paul-C-Anagnostopoulos wrote:
> jrtc27 wrote:
> > This can avoid some boilerplate by using llvm::any_of
> Ah, something new to learn. Okay, I'll check it out.
I'm sorry, please help me out. I coded:

for (const auto &OneDef : getDefs()) {
    if (!any_of(ClassRecs, [OneDef](Record *const Class) {
                             return !OneDef.second->isSubClassOf(Class);
                           }))
  Defs.push_back(OneDef.second.get());

I get a sequence of messages I cannot figure out. Sorry, I can't copy and paste them. The first one is "... attempting to reference a deleted function." It looks like it's about the std::pair class, which would be the OneDef.




CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88832/new/

https://reviews.llvm.org/D88832



More information about the llvm-commits mailing list