summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenAction.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-10-27 23:02:34 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-10-27 23:02:34 +0000
commitc008c64326dfae519b5cd0c0a3bdeb85527b2151 (patch)
treeb77f3202217eed88f5e2199b7888a602ece89a64 /clang/lib/CodeGen/CodeGenAction.cpp
parent4160f5d3ac9b5fe27726065baa8b2af730f357a7 (diff)
downloadbcm5719-llvm-c008c64326dfae519b5cd0c0a3bdeb85527b2151.tar.gz
bcm5719-llvm-c008c64326dfae519b5cd0c0a3bdeb85527b2151.zip
Use the newer/simple API for passing a diagnostic handler to the IR linker.
llvm-svn: 220733
Diffstat (limited to 'clang/lib/CodeGen/CodeGenAction.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenAction.cpp21
1 files changed, 5 insertions, 16 deletions
diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp
index 044eec643bb..0bd53b8da51 100644
--- a/clang/lib/CodeGen/CodeGenAction.cpp
+++ b/clang/lib/CodeGen/CodeGenAction.cpp
@@ -153,15 +153,9 @@ namespace clang {
// Link LinkModule into this module if present, preserving its validity.
if (LinkModule) {
- LLVMContext &Ctx = LinkModule->getContext();
- LLVMContext::DiagnosticHandlerTy OldHandler =
- Ctx.getDiagnosticHandler();
- void *OldDiagnosticContext = Ctx.getDiagnosticContext();
- Ctx.setDiagnosticHandler(linkerDiagnosticHandler, this);
- bool Failed =
- Linker::LinkModules(M, LinkModule.get(), Linker::PreserveSource);
- Ctx.setDiagnosticHandler(OldHandler, OldDiagnosticContext);
- if (Failed)
+ if (Linker::LinkModules(
+ M, LinkModule.get(), Linker::PreserveSource,
+ [=](const DiagnosticInfo &DI) { linkerDiagnosticHandler(DI); }))
return;
}
@@ -225,12 +219,7 @@ namespace clang {
((BackendConsumer*)Context)->InlineAsmDiagHandler2(SM, Loc);
}
- static void linkerDiagnosticHandler(const llvm::DiagnosticInfo &DI,
- void *Context) {
- ((BackendConsumer *)Context)->linkerDiagnosticHandlerImpl(DI);
- }
-
- void linkerDiagnosticHandlerImpl(const llvm::DiagnosticInfo &DI);
+ void linkerDiagnosticHandler(const llvm::DiagnosticInfo &DI);
static void DiagnosticHandler(const llvm::DiagnosticInfo &DI,
void *Context) {
@@ -507,7 +496,7 @@ void BackendConsumer::OptimizationFailureHandler(
EmitOptimizationMessage(D, diag::warn_fe_backend_optimization_failure);
}
-void BackendConsumer::linkerDiagnosticHandlerImpl(const DiagnosticInfo &DI) {
+void BackendConsumer::linkerDiagnosticHandler(const DiagnosticInfo &DI) {
if (DI.getSeverity() != DS_Error)
return;
OpenPOWER on IntegriCloud