Rewrite the debug action handling to take -verify into account.
Add a quiet option for dwarfdump and move it out of NDEBUG only. Still requires an option as we don't want this on by default. llvm-svn: 149894
This commit is contained in:
@@ -853,34 +853,32 @@ void Driver::BuildUniversalActions(const ToolChain &TC,
|
||||
else
|
||||
Actions.push_back(new LipoJobAction(Inputs, Act->getType()));
|
||||
|
||||
// Add a 'dsymutil' step if necessary, when debug info is enabled and we
|
||||
// have a compile input. We need to run 'dsymutil' ourselves in such cases
|
||||
// because the debug info will refer to a temporary object file which is
|
||||
// will be removed at the end of the compilation process.
|
||||
if (Act->getType() == types::TY_Image) {
|
||||
Arg *A = Args.getLastArg(options::OPT_g_Group);
|
||||
// Handle debug info queries.
|
||||
Arg *A = Args.getLastArg(options::OPT_g_Group);
|
||||
if (A && !A->getOption().matches(options::OPT_g0) &&
|
||||
!A->getOption().matches(options::OPT_gstabs) &&
|
||||
ContainsCompileOrAssembleAction(Actions.back())) {
|
||||
ActionList Inputs;
|
||||
Inputs.push_back(Actions.back());
|
||||
Actions.pop_back();
|
||||
|
||||
// Add a 'dsymutil' step if necessary, when debug info is enabled and we
|
||||
// have a compile input. We need to run 'dsymutil' ourselves in such cases
|
||||
// because the debug info will refer to a temporary object file which is
|
||||
// will be removed at the end of the compilation process.
|
||||
if (Act->getType() == types::TY_Image) {
|
||||
ActionList Inputs;
|
||||
Inputs.push_back(Actions.back());
|
||||
Actions.pop_back();
|
||||
Actions.push_back(new DsymutilJobAction(Inputs, types::TY_dSYM));
|
||||
}
|
||||
|
||||
Actions.push_back(new DsymutilJobAction(Inputs, types::TY_dSYM));
|
||||
|
||||
// Verify the debug information if we're in debug mode and '-verify'
|
||||
// is passed.
|
||||
#ifndef NDEBUG
|
||||
if (Args.hasArg(options::OPT_verify)) {
|
||||
ActionList VerifyInputs;
|
||||
// Verify the output (debug information only) if we passed '-verify'.
|
||||
if (Args.hasArg(options::OPT_verify)) {
|
||||
ActionList VerifyInputs;
|
||||
VerifyInputs.push_back(Actions.back());
|
||||
Actions.pop_back();
|
||||
Actions.push_back(new VerifyJobAction(VerifyInputs,
|
||||
types::TY_Nothing));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user