]> granicus.if.org Git - clang/commitdiff
Add support for -ggnu-pubnames matching the llvm support.
authorEric Christopher <echristo@gmail.com>
Fri, 13 Sep 2013 22:37:55 +0000 (22:37 +0000)
committerEric Christopher <echristo@gmail.com>
Fri, 13 Sep 2013 22:37:55 +0000 (22:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190729 91177308-0d34-0410-b5e6-96231b3b80d8

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

index d91001f8c789fec6de12d7c79fbec9c088aaf64c..d5a8b775d74bce4903a0c4198bf68639a384cbcd 100644 (file)
@@ -138,6 +138,8 @@ def dwarf_column_info : Flag<["-"], "dwarf-column-info">,
   HelpText<"Turn on column location information.">;
 def split_dwarf : Flag<["-"], "split-dwarf">,
   HelpText<"Split out the dwarf .dwo sections">;
+def gnu_pubnames : Flag<["-"], "gnu-pubnames">,
+  HelpText<"Emit newer GNU style pubnames">;
 def fforbid_guard_variables : Flag<["-"], "fforbid-guard-variables">,
   HelpText<"Emit an error if a C++ static local initializer would need a guard variable">;
 def no_implicit_float : Flag<["-"], "no-implicit-float">,
index 90e9faca22c4a96d2dd72a01e8d0cffb2595bc6a..95dd607c1c49d49bd42cea0dfd1696215e595d95 100644 (file)
@@ -852,6 +852,7 @@ def gstrict_dwarf : Flag<["-"], "gstrict-dwarf">, Group<g_flags_Group>;
 def gno_strict_dwarf : Flag<["-"], "gno-strict-dwarf">, Group<g_flags_Group>;
 def gcolumn_info : Flag<["-"], "gcolumn-info">, Group<g_flags_Group>;
 def gsplit_dwarf : Flag<["-"], "gsplit-dwarf">, Group<g_flags_Group>;
+def ggnu_pubnames : Flag<["-"], "ggnu-pubnames">, Group<g_flags_Group>;
 def headerpad__max__install__names : Joined<["-"], "headerpad_max_install_names">;
 def help : Flag<["-", "--"], "help">, Flags<[CC1Option]>,
   HelpText<"Display available options">;
index 0d95ecdcf8c1afa9dc52372cc4274501644a003f..30ecdc05d3e22daa6395769eb51d2cb6090b04d5 100644 (file)
@@ -2499,6 +2499,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
   if (Args.hasArg(options::OPT_gcolumn_info))
     CmdArgs.push_back("-dwarf-column-info");
 
+  // FIXME: Move backend command line options to the module.
   // -gsplit-dwarf should turn on -g and enable the backend dwarf
   // splitting and extraction.
   // FIXME: Currently only works on Linux.
@@ -2509,6 +2510,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
     CmdArgs.push_back("-split-dwarf=Enable");
   }
 
+  // -ggnu-pubnames turns on gnu style pubnames in the backend.
+  if (Args.hasArg(options::OPT_ggnu_pubnames)) {
+    CmdArgs.push_back("-backend-option");
+    CmdArgs.push_back("-generate-gnu-dwarf-pub-sections");
+  }
 
   Args.AddAllArgs(CmdArgs, options::OPT_fdebug_types_section);
 
index 449d8a9bdae59b6d5ad281b65e7013443dfbc0bd..1f890b2e67f4f76a0a2bfae43ce36adf01b5361f 100644 (file)
@@ -47,6 +47,8 @@
 // RUN:        -fno-debug-types-section %s 2>&1                       \
 // RUN:        | FileCheck -check-prefix=GIGNORE %s
 //
+// RUN: %clang -### -c -ggnu-pubnames %s 2>&1 | FileCheck -check-prefix=GOPT %s
+//
 // G: "-cc1"
 // G: "-g"
 //
@@ -78,3 +80,5 @@
 // GLTO_NO-NOT: "-gline-tables-only"
 //
 // GIGNORE-NOT: "argument unused during compilation"
+//
+// GOPT: -generate-gnu-dwarf-pub-sections