forked from OSchip/llvm-project
When generating the clang crash diagnostic script, strip out the -D, -F, and -I
flags. We have preprocessed source, so we don't need these. No test case as it's fairly difficult to make the compiler crash on demand. I'll patiently wait for Ben to tell me how to do this in 2 lines of code. :) rdar://11283560 llvm-svn: 155180
This commit is contained in:
parent
9cc324d31a
commit
9c74e4310c
|
@ -489,6 +489,20 @@ void Driver::generateCompilationDiagnostics(Compilation &C,
|
|||
Diag(clang::diag::note_drv_command_failed_diag_msg)
|
||||
<< "Error generating run script: " + Script + " " + Err;
|
||||
} else {
|
||||
// Strip -D, -F, and -I.
|
||||
// FIXME: This doesn't work with quotes (e.g., -D "foo bar").
|
||||
std::string Flag[3] = {"-D ", "-F", "-I "};
|
||||
for (unsigned i = 0; i < 3; ++i) {
|
||||
size_t I = 0, E = 0;
|
||||
do {
|
||||
I = Cmd.find(Flag[i], I);
|
||||
if (I == std::string::npos) break;
|
||||
|
||||
E = Cmd.find(" ", I + Flag[i].length());
|
||||
if (E == std::string::npos) break;
|
||||
Cmd.erase(I, E - I + 1);
|
||||
} while(1);
|
||||
}
|
||||
ScriptOS << Cmd;
|
||||
Diag(clang::diag::note_drv_command_failed_diag_msg) << Script;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue