Author: dougk Date: Tue Sep 8 14:29:55 2015 New Revision: 247052 URL: http://llvm.org/viewvc/llvm-project?rev=247052&view=rev Log: [Shave]: add a -MT option to moviCompile if there wasn't one
Differential Revision: http://reviews.llvm.org/D12622 Modified: cfe/trunk/lib/Driver/Tools.cpp cfe/trunk/test/Driver/shave-toolchain.c Modified: cfe/trunk/lib/Driver/Tools.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=247052&r1=247051&r2=247052&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Tools.cpp (original) +++ cfe/trunk/lib/Driver/Tools.cpp Tue Sep 8 14:29:55 2015 @@ -9669,15 +9669,27 @@ void tools::SHAVE::Compiler::ConstructJo // Append all -I, -iquote, -isystem paths, defines/undefines, // 'f' flags, optimize flags, and warning options. // These are spelled the same way in clang and moviCompile. - Args.AddAllArgs(CmdArgs, - {options::OPT_I_Group, options::OPT_clang_i_Group, - options::OPT_D, options::OPT_U, - options::OPT_f_Group, - options::OPT_f_clang_Group, - options::OPT_g_Group, - options::OPT_M_Group, - options::OPT_O_Group, - options::OPT_W_Group}); + Args.AddAllArgs(CmdArgs, {options::OPT_I_Group, options::OPT_clang_i_Group, + options::OPT_D, options::OPT_U, + options::OPT_f_Group, options::OPT_f_clang_Group, + options::OPT_g_Group, options::OPT_M_Group, + options::OPT_O_Group, options::OPT_W_Group}); + + // If we're producing a dependency file, and assembly is the final action, + // then the name of the target in the dependency file should be the '.o' + // file, not the '.s' file produced by this step. For example, instead of + // /tmp/mumble.s: mumble.c .../someheader.h + // the filename on the lefthand side should be "mumble.o" + if (Args.getLastArg(options::OPT_MF) && !Args.getLastArg(options::OPT_MT) && + C.getActions().size() == 1 && + C.getActions()[0]->getKind() == Action::AssembleJobClass) { + Arg *A = Args.getLastArg(options::OPT_o); + if (A) { + CmdArgs.push_back("-MT"); + CmdArgs.push_back(Args.MakeArgString(A->getValue())); + } + } + CmdArgs.push_back("-fno-exceptions"); // Always do this even if unspecified. CmdArgs.push_back(II.getFilename()); Modified: cfe/trunk/test/Driver/shave-toolchain.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/shave-toolchain.c?rev=247052&r1=247051&r2=247052&view=diff ============================================================================== --- cfe/trunk/test/Driver/shave-toolchain.c (original) +++ cfe/trunk/test/Driver/shave-toolchain.c Tue Sep 8 14:29:55 2015 @@ -26,3 +26,7 @@ // RUN: -ffunction-sections 2>&1 | FileCheck %s -check-prefix=PASSTHRU_OPTIONS // PASSTHRU_OPTIONS: "-g" "-fno-inline-functions" "-fno-inline-functions-called-once" // PASSTHRU_OPTIONS: "-Os" "-Wall" "-MF" "dep.d" "-ffunction-sections" + +// RUN: %clang -target shave -c %s -o foo.o -### -MD -MF dep.d 2>&1 \ +// RUN: | FileCheck %s -check-prefix=MDMF +// MDMF: "-S" "-MD" "-MF" "dep.d" "-MT" "foo.o" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits