From d8cd0604223442ff2d25e64653667f85363398bd Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Thu, 11 Feb 2016 16:33:20 +0000 Subject: [PATCH] Revert r260265, "clang-cl: Support loading plugins on Windows" It causes memory exhaust on mingw-w64(x64). Investigating. llvm-svn: 260536 --- clang/docs/ClangPlugins.rst | 5 +---- clang/examples/PrintFunctionNames/PrintFunctionNames.cpp | 1 - clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp | 9 +-------- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/clang/docs/ClangPlugins.rst b/clang/docs/ClangPlugins.rst index 1aeff62..9a5bc14 100644 --- a/clang/docs/ClangPlugins.rst +++ b/clang/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/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp b/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp index e2834b9..9f8f6e3 100644 --- a/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp +++ b/clang/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/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp index 90642ab..116590e 100644 --- a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/clang/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. -- 2.7.4