summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInstance.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2014-03-04 21:50:01 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2014-03-04 21:50:01 +0000
commit841f1c782e2aba329e329ae6054266ce874ef49c (patch)
treed34d97d158f5f0bb367f2bbeee253a3626e88315 /clang/lib/Frontend/CompilerInstance.cpp
parentcfcdd233394e7af3a170c191f13d3171c5508b80 (diff)
downloadbcm5719-llvm-841f1c782e2aba329e329ae6054266ce874ef49c.tar.gz
bcm5719-llvm-841f1c782e2aba329e329ae6054266ce874ef49c.zip
[C++11] Simplify a callback to use a lambda.
llvm-svn: 202897
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInstance.cpp20
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
OpenPOWER on IntegriCloud