diff options
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 23 | ||||
| -rw-r--r-- | clang/test/Driver/integrated-as.s | 3 |
2 files changed, 11 insertions, 15 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 0adc05c9464..1b79ed730fa 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); diff --git a/clang/test/Driver/integrated-as.s b/clang/test/Driver/integrated-as.s index a2cd574efe6..e274a45cd01 100644 --- a/clang/test/Driver/integrated-as.s +++ b/clang/test/Driver/integrated-as.s @@ -26,8 +26,9 @@ // XA_INCLUDE2: cc1as // XA_INCLUDE2: "-Ifoo_dir" -// RUN: %clang -### -c -integrated-as %s -gdwarf-2 2>&1 | FileCheck --check-prefix=DWARF2 %s +// RUN: %clang -### -c -integrated-as %s -gdwarf-4 -gdwarf-2 2>&1 | FileCheck --check-prefix=DWARF2 %s // DWARF2: "-g" "-gdwarf-2" +// DWARF2-NOT: "-gdwarf-4" // RUN: %clang -### -c -integrated-as %s -gdwarf-3 2>&1 | FileCheck --check-prefix=DWARF3 %s // DWARF3: "-g" "-gdwarf-3" |

