diff options
| -rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 20 | 
1 files changed, 2 insertions, 18 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index 4ab7f00e5aa..e07eb5295de 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -763,21 +763,6 @@ static InputKind getSourceInputKindFromOptions(const LangOptions &LangOpts) {    return LangOpts.CPlusPlus? IK_CXX : IK_C;  } -namespace { -  struct CompileModuleMapData { -    CompilerInstance &Instance; -    GenerateModuleAction &CreateModuleAction; -  }; -} - -/// \brief Helper function that executes the module-generating action under -/// a crash recovery context. -static void doCompileMapModule(void *UserData) { -  CompileModuleMapData &Data -    = *reinterpret_cast<CompileModuleMapData *>(UserData); -  Data.Instance.ExecuteAction(Data.CreateModuleAction); -} -  /// \brief Compile a module file for the given module, using the options   /// provided by the importing compiler instance.  static void compileModule(CompilerInstance &ImportingInstance, @@ -908,10 +893,9 @@ static void compileModule(CompilerInstance &ImportingInstance,    // thread so that we get a stack large enough.    const unsigned ThreadStackSize = 8 << 20;    llvm::CrashRecoveryContext CRC; -  CompileModuleMapData Data = { Instance, CreateModuleAction }; -  CRC.RunSafelyOnThread(&doCompileMapModule, &Data, ThreadStackSize); +  CRC.RunSafelyOnThread([&]() { Instance.ExecuteAction(CreateModuleAction); }, +                        ThreadStackSize); -      // Delete the temporary module map file.    // FIXME: Even though we're executing under crash protection, it would still    // be nice to do this with RemoveFileOnSignal when we can. However, that  | 

