[driver] When clang crashes, don't try to generate diagnostics (i.e.,

preprocessor output) with multiple -arch options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139207 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chad Rosier 2011-09-06 23:52:36 +00:00
Родитель 4019f7d384
Коммит 46e3908af1
1 изменённых файлов: 17 добавлений и 0 удалений

Просмотреть файл

@ -396,6 +396,23 @@ void Driver::generateCompilationDiagnostics(Compilation &C,
}
}
// Don't attempt to generate preprocessed files if multiple -arch options are
// used.
int Archs = 0;
for (ArgList::const_iterator it = C.getArgs().begin(), ie = C.getArgs().end();
it != ie; ++it) {
Arg *A = *it;
if (A->getOption().matches(options::OPT_arch)) {
Archs++;
if (Archs > 1) {
Diag(clang::diag::note_drv_command_failed_diag_msg)
<< "Error generating preprocessed source(s) - cannot generate "
"preprocessed source with multiple -arch options.";
return;
}
}
}
if (Inputs.empty()) {
Diag(clang::diag::note_drv_command_failed_diag_msg)
<< "Error generating preprocessed source(s) - no preprocessable inputs.";