From: NAKAMURA Takumi Date: Thu, 11 Feb 2016 16:33:20 +0000 (+0000) Subject: Revert r260265, "clang-cl: Support loading plugins on Windows" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7eba45f7ef2d6917db1ef0143e4dab41d77b3bf7;p=clang Revert r260265, "clang-cl: Support loading plugins on Windows" It causes memory exhaust on mingw-w64(x64). Investigating. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260536 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/ClangPlugins.rst b/docs/ClangPlugins.rst index 1aeff62e2f..9a5bc14213 100644 --- a/docs/ClangPlugins.rst +++ b/docs/ClangPlugins.rst @@ -37,14 +37,11 @@ Registering a plugin ==================== A plugin is loaded from a dynamic library at runtime by the compiler. To -register a plugin in a library, use ``FrontendPluginRegistry::Add<>``. -On Windows, you also need to export your plugin registry using -``LLVM_EXPORT_REGISTRY``. Here is an example: +register a plugin in a library, use ``FrontendPluginRegistry::Add<>``: .. code-block:: c++ static FrontendPluginRegistry::Add X("my-plugin-name", "my plugin description"); - LLVM_EXPORT_REGISTRY(FrontendPluginRegistry) Putting it all together ======================= diff --git a/examples/PrintFunctionNames/PrintFunctionNames.cpp b/examples/PrintFunctionNames/PrintFunctionNames.cpp index e2834b9ad2..9f8f6e3f05 100644 --- a/examples/PrintFunctionNames/PrintFunctionNames.cpp +++ b/examples/PrintFunctionNames/PrintFunctionNames.cpp @@ -121,4 +121,3 @@ protected: static FrontendPluginRegistry::Add X("print-fns", "print function names"); -LLVM_EXPORT_REGISTRY(FrontendPluginRegistry) diff --git a/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/lib/FrontendTool/ExecuteCompilerInvocation.cpp index 90642abb5d..116590e537 100644 --- a/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/lib/FrontendTool/ExecuteCompilerInvocation.cpp @@ -189,16 +189,9 @@ bool clang::ExecuteCompilerInvocation(CompilerInstance *Clang) { e = Clang->getFrontendOpts().Plugins.size(); i != e; ++i) { const std::string &Path = Clang->getFrontendOpts().Plugins[i]; std::string Error; - llvm::sys::DynamicLibrary DL( - llvm::sys::DynamicLibrary::getPermanentLibrary(Path.c_str(), &Error)); - if (DL.isValid()) { - // On Windows, we need to import the plugin front-end action - // dynamically. - LLVM_IMPORT_REGISTRY(FrontendPluginRegistry, DL); - } else { + if (llvm::sys::DynamicLibrary::LoadLibraryPermanently(Path.c_str(), &Error)) Clang->getDiagnostics().Report(diag::err_fe_unable_to_load_plugin) << Path << Error; - } } // Honor -mllvm.