summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2013-10-18 22:49:04 +0000
committerHans Wennborg <hans@hanshq.net>2013-10-18 22:49:04 +0000
commit9c1659b5b7036778d35290ec7e90cc32439c0aa5 (patch)
tree9dd9fa92fdd7dd98393031340561d8563e8a8c0c /clang/lib/Driver/Driver.cpp
parent92304e0013b7df2396d143c7e23c2197bcc0d13d (diff)
downloadbcm5719-llvm-9c1659b5b7036778d35290ec7e90cc32439c0aa5.tar.gz
bcm5719-llvm-9c1659b5b7036778d35290ec7e90cc32439c0aa5.zip
clang-cl: diagnose setting asm listing filename with multiple inputs
llvm-svn: 193006
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r--clang/lib/Driver/Driver.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 101b83c711f..4b139332891 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -1150,12 +1150,23 @@ void Driver::BuildActions(const ToolChain &TC, DerivedArgList &Args,
Args.eraseArg(options::OPT__SLASH_Fo);
} else if (Inputs.size() > 1 && !llvm::sys::path::is_separator(V.back())) {
// Check whether /Fo tries to name an output file for multiple inputs.
- Diag(clang::diag::err_drv_obj_file_argument_with_multiple_sources)
+ Diag(clang::diag::err_drv_out_file_argument_with_multiple_sources)
<< A->getSpelling() << V;
Args.eraseArg(options::OPT__SLASH_Fo);
}
}
+ // Diagnose misuse of /Fa.
+ if (Arg *A = Args.getLastArg(options::OPT__SLASH_Fa)) {
+ StringRef V = A->getValue();
+ if (Inputs.size() > 1 && !llvm::sys::path::is_separator(V.back())) {
+ // Check whether /Fa tries to name an asm file for multiple inputs.
+ Diag(clang::diag::err_drv_out_file_argument_with_multiple_sources)
+ << A->getSpelling() << V;
+ Args.eraseArg(options::OPT__SLASH_Fa);
+ }
+ }
+
// Diagnose misuse of /Fe.
if (Arg *A = Args.getLastArg(options::OPT__SLASH_Fe)) {
if (A->getValue()[0] == '\0') {
OpenPOWER on IntegriCloud