[driver] Improve r141053 by only emitting the warning if the original input

was assembly.  Otherwise, something like -save-temps causes the integrated
assembler to warn.

llvm-svn: 141055
This commit is contained in:
Chad Rosier 2011-10-04 01:53:36 +00:00
parent 1e31e53fe1
commit 83200fdc65
1 changed files with 12 additions and 2 deletions

View File

@ -2318,10 +2318,20 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
// Ignore explicit -force_cpusubtype_ALL option.
(void) Args.hasArg(options::OPT_force__cpusubtype__ALL);
// Determine the original source input.
const Action *SourceAction = &JA;
while (SourceAction->getKind() != Action::InputClass) {
assert(!SourceAction->getInputs().empty() && "unexpected root action!");
SourceAction = SourceAction->getInputs()[0];
}
// FIXME: Add -g support, once we have it. For now, emit a warning indicating
// the integrated assembler doesn't support debug info.
if (Args.hasArg(options::OPT_g_Group)) {
getToolChain().getDriver().Diag(diag::warn_drv_no_debug_w_integrated_as);
if (SourceAction->getType() == types::TY_Asm ||
SourceAction->getType() == types::TY_PP_Asm) {
if (Args.hasArg(options::OPT_g_Group)) {
getToolChain().getDriver().Diag(diag::warn_drv_no_debug_w_integrated_as);
}
}
// FIXME: Add -static support, once we have it.