]> granicus.if.org Git - clang/commitdiff
Revert r260265, "clang-cl: Support loading plugins on Windows"
authorNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 11 Feb 2016 16:33:20 +0000 (16:33 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 11 Feb 2016 16:33:20 +0000 (16:33 +0000)
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

docs/ClangPlugins.rst
examples/PrintFunctionNames/PrintFunctionNames.cpp
lib/FrontendTool/ExecuteCompilerInvocation.cpp

index 1aeff62e2fd8ce735058d5fa28d7cb86a0d15796..9a5bc142130b7f3000b3bd834b4bb7122fe247dc 100644 (file)
@@ -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<MyPlugin> X("my-plugin-name", "my plugin description");
-  LLVM_EXPORT_REGISTRY(FrontendPluginRegistry)
 
 Putting it all together
 =======================
index e2834b9ad234f919d4b92e01c1f1e30c4d4786a7..9f8f6e3f050a5650fadc268528b754b5bfafff58 100644 (file)
@@ -121,4 +121,3 @@ protected:
 
 static FrontendPluginRegistry::Add<PrintFunctionNamesAction>
 X("print-fns", "print function names");
-LLVM_EXPORT_REGISTRY(FrontendPluginRegistry)
index 90642abb5d5169cfb52ea01b9bb2c893b6e5749e..116590e5375a622a5f1cc70bc23ac217b622863e 100644 (file)
@@ -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.