diff options
author | Douglas Katzman <dougk@google.com> | 2015-09-14 20:31:28 +0000 |
---|---|---|
committer | Douglas Katzman <dougk@google.com> | 2015-09-14 20:31:28 +0000 |
commit | 553927a78adaeb5d1dfd6dbd24fa7239fd463412 (patch) | |
tree | a167af03bbedafa2721992098bb62e25834ec18e /clang/lib/Driver/Tools.cpp | |
parent | 6614d8d2308f2571a79592cdd4b4611a1e072898 (diff) | |
download | llvm-553927a78adaeb5d1dfd6dbd24fa7239fd463412.zip llvm-553927a78adaeb5d1dfd6dbd24fa7239fd463412.tar.gz llvm-553927a78adaeb5d1dfd6dbd24fa7239fd463412.tar.bz2 |
Driver should forward at most one gdwarf-N flag to cc1as.
llvm-svn: 247611
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 0adc05c..1b79ed7 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -3769,14 +3769,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Triple.getOS() == llvm::Triple::Solaris) CmdArgs.push_back("-gdwarf-2"); SplitDwarfArg = nullptr; - } else if (A->getOption().matches(options::OPT_gdwarf_2)) - CmdArgs.push_back("-gdwarf-2"); - else if (A->getOption().matches(options::OPT_gdwarf_3)) - CmdArgs.push_back("-gdwarf-3"); - else if (A->getOption().matches(options::OPT_gdwarf_4)) - CmdArgs.push_back("-gdwarf-4"); - else if (!A->getOption().matches(options::OPT_g0) && - !A->getOption().matches(options::OPT_ggdb0)) { + } else if (A->getOption().matches(options::OPT_gdwarf_2) || + A->getOption().matches(options::OPT_gdwarf_3) || + A->getOption().matches(options::OPT_gdwarf_4)) { + A->render(Args, CmdArgs); + } else if (!A->getOption().matches(options::OPT_g0) && + !A->getOption().matches(options::OPT_ggdb0)) { // Default is dwarf-2 for Darwin, OpenBSD, FreeBSD and Solaris. const llvm::Triple &Triple = getToolChain().getTriple(); if (Triple.isOSDarwin() || Triple.getOS() == llvm::Triple::OpenBSD || @@ -5550,12 +5548,9 @@ void ClangAs::ConstructJob(Compilation &C, const JobAction &JA, if (!A->getOption().matches(options::OPT_g0)) CmdArgs.push_back("-g"); - if (Args.hasArg(options::OPT_gdwarf_2)) - CmdArgs.push_back("-gdwarf-2"); - if (Args.hasArg(options::OPT_gdwarf_3)) - CmdArgs.push_back("-gdwarf-3"); - if (Args.hasArg(options::OPT_gdwarf_4)) - CmdArgs.push_back("-gdwarf-4"); + if (Arg *A = Args.getLastArg(options::OPT_gdwarf_2, options::OPT_gdwarf_3, + options::OPT_gdwarf_4)) + A->render(Args, CmdArgs); // Add the -fdebug-compilation-dir flag if needed. addDebugCompDirArg(Args, CmdArgs); |