From 9c1659b5b7036778d35290ec7e90cc32439c0aa5 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Fri, 18 Oct 2013 22:49:04 +0000 Subject: clang-cl: diagnose setting asm listing filename with multiple inputs llvm-svn: 193006 --- clang/lib/Driver/Driver.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'clang/lib/Driver/Driver.cpp') 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') { -- cgit v1.2.3