diff options
author | Jordan Rupprecht <rupprecht@google.com> | 2020-02-06 17:48:06 -0800 |
---|---|---|
committer | Jordan Rupprecht <rupprecht@google.com> | 2020-02-06 17:59:15 -0800 |
commit | fafddbd956dbe439787f6d717c247e648bb07ff5 (patch) | |
tree | 24a674538fb467086f3c49daf0f56cbf64c8545e /clang/lib/Driver/Compilation.cpp | |
parent | 1eaa31ce0e5242dbb4c90084952bede678e360a2 (diff) | |
download | llvm-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.cpp | 13 |
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, {""}, {""}}; |