[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