diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-09-17 04:13:26 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-09-17 04:13:26 +0000 |
commit | 07806ca7ab367da1e3e4c8a2e93120bc06ca24a8 (patch) | |
tree | b9fcfb5974b43a5db40732ff3e62c4ea0ec963c3 /clang/lib/Driver/Driver.cpp | |
parent | a2fb9bcd1917a54e21b079c889f5660bf97723bf (diff) | |
download | bcm5719-llvm-07806ca7ab367da1e3e4c8a2e93120bc06ca24a8.tar.gz bcm5719-llvm-07806ca7ab367da1e3e4c8a2e93120bc06ca24a8.zip |
Improve driver error message when only running the preprocessor and an input is
already preprocessed.
--
ddunbar@giles:tmp$ touch t.i
ddunbar@giles:tmp$ gcc -E t.i
ddunbar@giles:tmp$ clang -E t.i
clang: warning: t.i: previously preprocessed input unused when '-E' is present
ddunbar@giles:tmp$
--
<rdar://problem/6813375> [driver] driver prints confusing message when running -E on preprocessed file
llvm-svn: 82120
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 6fb7c98e5e7..1d72b0dbd6e 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -803,10 +803,19 @@ void Driver::BuildActions(const ArgList &Args, ActionList &Actions) const { if (InitialPhase > FinalPhase) { // Claim here to avoid the more general unused warning. InputArg->claim(); - Diag(clang::diag::warn_drv_input_file_unused) - << InputArg->getAsString(Args) - << getPhaseName(InitialPhase) - << FinalPhaseArg->getOption().getName(); + + // Special case '-E' warning on a previously preprocessed file to make + // more sense. + if (InitialPhase == phases::Compile && FinalPhase == phases::Preprocess && + getPreprocessedType(InputType) == types::TY_INVALID) + Diag(clang::diag::warn_drv_preprocessed_input_file_unused) + << InputArg->getAsString(Args) + << FinalPhaseArg->getOption().getName(); + else + Diag(clang::diag::warn_drv_input_file_unused) + << InputArg->getAsString(Args) + << getPhaseName(InitialPhase) + << FinalPhaseArg->getOption().getName(); continue; } |