aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Compilation.cpp
diff options
context:
space:
mode:
authorJordan Rupprecht <rupprecht@google.com>2020-02-06 17:48:06 -0800
committerJordan Rupprecht <rupprecht@google.com>2020-02-06 17:59:15 -0800
commitfafddbd956dbe439787f6d717c247e648bb07ff5 (patch)
tree24a674538fb467086f3c49daf0f56cbf64c8545e /clang/lib/Driver/Compilation.cpp
parent1eaa31ce0e5242dbb4c90084952bede678e360a2 (diff)
downloadllvm-fafddbd956dbe439787f6d717c247e648bb07ff5.zip
llvm-fafddbd956dbe439787f6d717c247e648bb07ff5.tar.gz
llvm-fafddbd956dbe439787f6d717c247e648bb07ff5.tar.bz2
Revert "[Clang][Driver] Remove -M group options ..." and "[Clang] Avoid crashing when generating crash diagnostics when '#pragma clang __debug ..."
This reverts commits f41ec709d9d388dc43469e6ac7f51b6313f7e4af and 5fedc2b410853a6aef05e8edf19ebfc4e071e28f. On some buildbots, Clang :: Driver/crash-report.c is broken with: ``` Command Output (stderr): -- /home/buildslave/ps4-buildslave1/clang-with-thin-lto-ubuntu/llvm-project/clang/test/Driver/crash-report.c:48:11: error: CHECK: expected string not found in input // CHECK: Preprocessed source(s) and associated run script(s) are located at: ^ <stdin>:1:1: note: scanning from here /home/buildslave/ps4-buildslave1/clang-with-thin-lto-ubuntu/llvm-project/clang/test/Driver/crash-report.c:50:1: error: unknown type name 'BAZ' ``` Example: http://lab.llvm.org:8011/builders/clang-with-thin-lto-ubuntu/builds/21321/steps/test-stage1-compiler/logs/stdio
Diffstat (limited to 'clang/lib/Driver/Compilation.cpp')
-rw-r--r--clang/lib/Driver/Compilation.cpp13
1 files changed, 2 insertions, 11 deletions
diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp
index 5247757..25aec36 100644
--- a/clang/lib/Driver/Compilation.cpp
+++ b/clang/lib/Driver/Compilation.cpp
@@ -258,23 +258,14 @@ void Compilation::initCompilationForDiagnostics() {
// Remove any user specified output. Claim any unclaimed arguments, so as
// to avoid emitting warnings about unused args.
- OptSpecifier OutputOpts[] = {
- options::OPT_o, options::OPT_MD, options::OPT_MMD, options::OPT_M,
- options::OPT_MM, options::OPT_MF, options::OPT_MG, options::OPT_MJ,
- options::OPT_MQ, options::OPT_MT, options::OPT_MV};
+ OptSpecifier OutputOpts[] = { options::OPT_o, options::OPT_MD,
+ options::OPT_MMD };
for (unsigned i = 0, e = llvm::array_lengthof(OutputOpts); i != e; ++i) {
if (TranslatedArgs->hasArg(OutputOpts[i]))
TranslatedArgs->eraseArg(OutputOpts[i]);
}
TranslatedArgs->ClaimAllArgs();
- // Force re-creation of the toolchain Args, otherwise our modifications just
- // above will have no effect.
- for (auto Arg : TCArgs)
- if (Arg.second != TranslatedArgs)
- delete Arg.second;
- TCArgs.clear();
-
// Redirect stdout/stderr to /dev/null.
Redirects = {None, {""}, {""}};