diff options
author | Manman Ren <manman.ren@gmail.com> | 2013-11-20 20:22:14 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2013-11-20 20:22:14 +0000 |
commit | 17bdb0f815e6243e23dc38a39dc1b8ee5aee610c (patch) | |
tree | ab4adb376d5e47148599e11e0430c3760142e1d0 /clang | |
parent | c8160d65239e4c91930f896f0cc8921fa2f9720d (diff) | |
download | bcm5719-llvm-17bdb0f815e6243e23dc38a39dc1b8ee5aee610c.tar.gz bcm5719-llvm-17bdb0f815e6243e23dc38a39dc1b8ee5aee610c.zip |
Set default Dwarf Version for -gline-tables-only on Darwin to 2.
We are still using Dwarf Version 2 for Darwin systems, make it consistent
with -gline-tables-only.
This should fix an internal buildbot.
llvm-svn: 195267
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 13 | ||||
-rw-r--r-- | clang/test/Driver/debug-options.c | 8 |
2 files changed, 17 insertions, 4 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index ca24e668377..1d86e3f6d60 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2600,13 +2600,18 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, D.CCLogDiagnosticsFilename : "-"); } - // Use the last option from "-g" group. "-gline-tables-only" - // is preserved, all other debug options are substituted with "-g". + // Use the last option from "-g" group. "-gline-tables-only" and "-gdwarf-x" + // are preserved, all other debug options are substituted with "-g". Args.ClaimAllArgs(options::OPT_g_Group); if (Arg *A = Args.getLastArg(options::OPT_g_Group)) { - if (A->getOption().matches(options::OPT_gline_tables_only)) + if (A->getOption().matches(options::OPT_gline_tables_only)) { + // FIXME: we should support specifying dwarf version with + // -gline-tables-only. CmdArgs.push_back("-gline-tables-only"); - else if (A->getOption().matches(options::OPT_gdwarf_2)) + // Default is dwarf-2 for darwin. + if (getToolChain().getTriple().isOSDarwin()) + CmdArgs.push_back("-gdwarf-2"); + } 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"); diff --git a/clang/test/Driver/debug-options.c b/clang/test/Driver/debug-options.c index 1f890b2e67f..526083719d8 100644 --- a/clang/test/Driver/debug-options.c +++ b/clang/test/Driver/debug-options.c @@ -35,6 +35,8 @@ // // RUN: %clang -### -c -gline-tables-only %s 2>&1 \ // RUN: | FileCheck -check-prefix=GLTO_ONLY %s +// RUN: %clang -### -c -gline-tables-only %s -target x86_64-apple-darwin 2>&1 \ +// RUN: | FileCheck -check-prefix=GLTO_ONLY_DARWIN %s // RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-linux-gnu 2>&1 \ // RUN: | FileCheck -check-prefix=G_ONLY %s // RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-apple-darwin 2>&1 \ @@ -66,6 +68,12 @@ // GLTO_ONLY: "-gline-tables-only" // GLTO_ONLY-NOT: "-g" // +// GLTO_ONLY_DARWIN: "-cc1" +// GLTO_ONLY_DARWIN-NOT: "-g" +// GLTO_ONLY_DARWIN: "-gline-tables-only" +// GLTO_ONLY_DARWIN: "-gdwarf-2" +// GLTO_ONLY_DARWIN-NOT: "-g" +// // G_ONLY: "-cc1" // G_ONLY-NOT: "-gline-tables-only" // G_ONLY: "-g" |