[PATCH] D91351: [tooling] Implement determinsitic ordering of CompilationDatabasePlugins

Nathan James via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 12 18:19:58 PST 2020


njames93 added inline comments.


================
Comment at: clang/lib/Tooling/CompilationDatabase.cpp:73
        CompilationDatabasePluginRegistry::entries()) {
+    Plugins.emplace_back(Database.getName(), Database.instantiate());
+  }
----------------
nridge wrote:
> A side effect of this change is that every plugin will get instantiated, not just the ones for which we attempt a load.
> 
> Perhaps we should store a pointer to the entry in the vector here, and instantiate() in the second loop below?
The original setup was to instantiate every plugin until we find one that is able to load from the directory.
As for your proposed solution, that wouldn't work as we can't get the priority without instantiating the plugin.
The current registry system also doesn't lend itself nicely.
I'm not too familiar, but it could be possible to specialise `SimpleRegistryEntry` for `CompilationDatabasePlugin`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91351



More information about the cfe-commits mailing list