================
@@ -33,5 +37,16 @@ bool FeatureModuleSet::addImpl(void *Key,
std::unique_ptr<FeatureModule> M,
return true;
}
+FeatureModuleSet FeatureModuleSet::fromRegistry() {
+ FeatureModuleSet ModuleSet;
+ for (FeatureModuleRegistry::entry E : FeatureModuleRegistry::entries()) {
+ vlog("Adding feature module '{0}' ({1})", E.getName(), E.getDesc());
+ ModuleSet.add(E.instantiate());
+ }
+ return ModuleSet;
+}
+
} // namespace clangd
} // namespace clang
+
+LLVM_INSTANTIATE_REGISTRY(clang::clangd::FeatureModuleRegistry)
----------------
kadircet wrote:
i think we'll still hit the same issue when there are users calling
`FeatureModuleRegistry::Add` from other translation units. can you add an
explicit instantiation to the header file instead via `extern template class
FeatureModuleRegistry` and a unittest that actually registers a dummy plugin
via this mechanism?
https://github.com/llvm/llvm-project/pull/154836
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits