diff options
author | Hans Wennborg <hans@hanshq.net> | 2013-10-18 22:49:04 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2013-10-18 22:49:04 +0000 |
commit | 9c1659b5b7036778d35290ec7e90cc32439c0aa5 (patch) | |
tree | 9dd9fa92fdd7dd98393031340561d8563e8a8c0c /clang/lib/Driver/Driver.cpp | |
parent | 92304e0013b7df2396d143c7e23c2197bcc0d13d (diff) | |
download | bcm5719-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.cpp | 13 |
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') { |