]> granicus.if.org Git - clang/commitdiff
Alias "-ggdbN" to "-gN" options, fixing some incompatibilities.
authorDouglas Katzman <dougk@google.com>
Wed, 30 Sep 2015 15:55:59 +0000 (15:55 +0000)
committerDouglas Katzman <dougk@google.com>
Wed, 30 Sep 2015 15:55:59 +0000 (15:55 +0000)
* assembling from a .s file mistook -ggdb0 for -g
* -ggdb1 is supposed to mean basically -g1, not -gN for N>1

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@248912 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Driver/Options.td
lib/Driver/Tools.cpp
test/Driver/debug-options-as.c
test/Driver/debug-options.c

index 018855a9745dbe85b6d8de7399a8d0b9f8788887..e4b461fe9a4225cd05be9d200abc07ee1b98623a 100644 (file)
@@ -1109,14 +1109,16 @@ def gline_tables_only : Flag<["-"], "gline-tables-only">, Group<g_Group>,
   HelpText<"Emit debug line number tables only">, Flags<[CC1Option]>;
 def gmlt : Flag<["-"], "gmlt">, Alias<gline_tables_only>;
 def g0 : Flag<["-"], "g0">, Group<g_Group>;
-def g1 : Flag<["-"], "g1">, Group<g_Group>;
+def g1 : Flag<["-"], "g1">, Group<g_Group>, Alias<gline_tables_only>;
 def g2 : Flag<["-"], "g2">, Group<g_Group>;
 def g3 : Flag<["-"], "g3">, Group<g_Group>;
 def ggdb : Flag<["-"], "ggdb">, Group<g_Group>;
-def ggdb0 : Flag<["-"], "ggdb0">, Group<g_Group>;
-def ggdb1 : Flag<["-"], "ggdb1">, Group<g_Group>;
-def ggdb2 : Flag<["-"], "ggdb2">, Group<g_Group>;
-def ggdb3 : Flag<["-"], "ggdb3">, Group<g_Group>;
+def ggdb0 : Flag<["-"], "ggdb0">, Alias<g0>;
+// Redirect ggdb1 to <gline_tables_only>, not <g1>,
+// because aliases of aliases aren't allowed.
+def ggdb1 : Flag<["-"], "ggdb1">, Alias<gline_tables_only>;
+def ggdb2 : Flag<["-"], "ggdb2">, Alias<g2>;
+def ggdb3 : Flag<["-"], "ggdb3">, Alias<g3>;
 def gdwarf_2 : Flag<["-"], "gdwarf-2">, Group<g_Group>,
   HelpText<"Generate source-level debug information with dwarf version 2">, Flags<[CC1Option,CC1AsOption]>;
 def gdwarf_3 : Flag<["-"], "gdwarf-3">, Group<g_Group>,
index 62f86e15e6ea2de74e3186f1e03be8351593c0ba..47673854ad63b2def2e4c2f76a9be3809e10c8b1 100644 (file)
@@ -3802,8 +3802,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
   Args.ClaimAllArgs(options::OPT_g_Group);
   Arg *SplitDwarfArg = Args.getLastArg(options::OPT_gsplit_dwarf);
   if (Arg *A = Args.getLastArg(options::OPT_g_Group)) {
-    if ((A->getOption().matches(options::OPT_gline_tables_only) ||
-         A->getOption().matches(options::OPT_g1)) &&
+    if (A->getOption().matches(options::OPT_gline_tables_only) &&
         (!SplitDwarfArg || A->getIndex() > SplitDwarfArg->getIndex())) {
       // FIXME: we should support specifying dwarf version with
       // -gline-tables-only.
@@ -3819,8 +3818,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
                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)) {
+    } else if (!A->getOption().matches(options::OPT_g0)) {
       // Default is dwarf-2 for Darwin, OpenBSD, FreeBSD and Solaris.
       const llvm::Triple &Triple = getToolChain().getTriple();
       if (Triple.isOSDarwin() || Triple.getOS() == llvm::Triple::OpenBSD ||
index 74a544c1c4b08d6c0ab0774c0f0c861f3f6bc803..92b865e8edbf600befb4aef8b6cfb6fc11b6f440 100644 (file)
@@ -7,10 +7,16 @@
 // SAVE: "-cc1as"
 // SAVE-NOT: "-g"
 
+// Make sure that '-ggdb0' is not accidentally mistaken for '-g'
+// RUN: %clang -### -ggdb0 -c -integrated-as -x assembler %s 2>&1 \
+// RUN:   | FileCheck -check-prefix=GGDB0 %s
+//
+// GGDB0: "-cc1as"
+// GGDB0-NOT: "-g"
+
 // Check to make sure clang with -g on a .s file gets passed.
 // rdar://9275556
-// RUN: touch %t.s
-// RUN: %clang -### -c -integrated-as -g %t.s 2>&1 \
+// RUN: %clang -### -c -integrated-as -g -x assembler %s 2>&1 \
 // RUN:   | FileCheck %s
 //
 // CHECK: "-cc1as"
@@ -18,8 +24,7 @@
 
 // Check to make sure clang with -g on a .s file gets passed -dwarf-debug-producer.
 // rdar://12955296
-// RUN: touch %t.s
-// RUN: %clang -### -c -integrated-as -g %t.s 2>&1 \
+// RUN: %clang -### -c -integrated-as -g -x assembler %s 2>&1 \
 // RUN:   | FileCheck -check-prefix=P %s
 //
 // P: "-cc1as"
index 830305ad45dae6a0097059fe8efeb600335a97b6..5f1c5df8e1717e6b6f0fb4d0a24baa728b17f3ee 100644 (file)
@@ -10,7 +10,7 @@
 // RUN: %clang -### -c -ggdb %s -target x86_64-linux-gnu 2>&1 \
 // RUN:             | FileCheck -check-prefix=G %s
 // RUN: %clang -### -c -ggdb1 %s -target x86_64-linux-gnu 2>&1 \
-// RUN:             | FileCheck -check-prefix=G %s
+// RUN:             | FileCheck -check-prefix=GLTO_ONLY %s
 // RUN: %clang -### -c -ggdb3 %s -target x86_64-linux-gnu 2>&1 \
 // RUN:             | FileCheck -check-prefix=G %s
 
@@ -23,7 +23,7 @@
 // RUN: %clang -### -c -ggdb %s -target x86_64-apple-darwin 2>&1 \
 // RUN:             | FileCheck -check-prefix=G_DARWIN %s
 // RUN: %clang -### -c -ggdb1 %s -target x86_64-apple-darwin 2>&1 \
-// RUN:             | FileCheck -check-prefix=G_DARWIN %s
+// RUN:             | FileCheck -check-prefix=GLTO_ONLY_DWARF2 %s
 // RUN: %clang -### -c -ggdb3 %s -target x86_64-apple-darwin 2>&1 \
 // RUN:             | FileCheck -check-prefix=G_DARWIN %s