summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-17 04:13:26 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-17 04:13:26 +0000
commit07806ca7ab367da1e3e4c8a2e93120bc06ca24a8 (patch)
treeb9fcfb5974b43a5db40732ff3e62c4ea0ec963c3 /clang/lib/Driver/Driver.cpp
parenta2fb9bcd1917a54e21b079c889f5660bf97723bf (diff)
downloadbcm5719-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.cpp17
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;
}
OpenPOWER on IntegriCloud