aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Driver/Tool.h1
-rw-r--r--lib/Driver/Driver.cpp5
-rw-r--r--lib/Driver/Tools.h1
3 files changed, 5 insertions, 2 deletions
diff --git a/include/clang/Driver/Tool.h b/include/clang/Driver/Tool.h
index c62e7567ea..4c05d0a743 100644
--- a/include/clang/Driver/Tool.h
+++ b/include/clang/Driver/Tool.h
@@ -50,6 +50,7 @@ public:
virtual bool hasIntegratedAssembler() const { return false; }
virtual bool hasIntegratedCPP() const = 0;
virtual bool isLinkJob() const { return false; }
+ virtual bool isDsymutilJob() const { return false; }
/// \brief Does this tool have "good" standardized diagnostics, or should the
/// driver add an additional "command failed" diagnostic on failures.
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 3ede6e3288..8a2804a9ad 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -339,8 +339,9 @@ void Driver::generateCompilationDiagnostics(Compilation &C,
if (C.getArgs().hasArg(options::OPT_fno_crash_diagnostics))
return;
- // Don't try to generate diagnostics for link jobs.
- if (FailingCommand && FailingCommand->getCreator().isLinkJob())
+ // Don't try to generate diagnostics for link or dsymutil jobs.
+ if (FailingCommand && (FailingCommand->getCreator().isLinkJob() ||
+ FailingCommand->getCreator().isDsymutilJob()))
return;
// Print the version of the compiler.
diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h
index a2b3c07b0c..f4aebd8bd2 100644
--- a/lib/Driver/Tools.h
+++ b/lib/Driver/Tools.h
@@ -278,6 +278,7 @@ namespace darwin {
"dsymutil", TC) {}
virtual bool hasIntegratedCPP() const { return false; }
+ virtual bool isDsymutilJob() const { return true; }
virtual void ConstructJob(Compilation &C, const JobAction &JA,
const InputInfo &Output,