From: Daniel Dunbar Date: Fri, 27 Mar 2009 15:22:28 +0000 (+0000) Subject: Driver: Pass -f[no-]pascal-strings on to clang, even if it has been X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9f3a777e503851964c9542a0261e45eece59747;p=clang Driver: Pass -f[no-]pascal-strings on to clang, even if it has been turned into -m[no-]pascal-strings by the tool chain. - This still has issue that derived arguments don't propogate "used" information correctly so spurious "argument unused" warnings will still show up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67841 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 248df2786f..db11945e89 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -306,6 +306,18 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.AddAllArgs(CmdArgs, options::OPT_clang_f_Group); + // If tool chain translates fpascal-strings, we want to back + // translate here. + // FIXME: This is gross; that translation should be pulled from the + // tool chain. + if (Arg *A = Args.getLastArg(options::OPT_mpascal_strings, + options::OPT_mno_pascal_strings)) { + if (A->getOption().matches(options::OPT_mpascal_strings)) + CmdArgs.push_back("-fpascal-strings"); + else + CmdArgs.push_back("-fno-pascal-strings"); + } + Args.AddLastArg(CmdArgs, options::OPT_dM); Args.AddAllArgValues(CmdArgs, options::OPT_Xclang);