On Mon, Apr 01, 2013 at 06:46:29PM -0700, Mike Stump wrote:
> On Apr 1, 2013, at 6:43 PM, Jason Merrill <ja...@redhat.com> wrote:
> > On 03/30/2013 02:23 AM, Senthil Kumar Selvaraj wrote:
> >> I couldn't find a way to ask gcc to just generate DWARF (default
> >> version) either. How should this be fixed?
> > 
> > Maybe we could use -gdwarf for that now, since we stopped using it for 
> > DWARF 1 in GCC 3.4.
> 
> I like that.
> 
Ok, how about the following (tentative) patch? If -gdwarf- is
specified without any argument, it picks DWARF 4 as the default.

Regards
Senthil


diff --git gcc/common.opt gcc/common.opt
index bdbd3b6..58311e7 100644
--- gcc/common.opt
+++ gcc/common.opt
@@ -2307,7 +2307,7 @@ Common JoinedOrMissing Negative(gdwarf-)
 Generate debug information in COFF format
 
 gdwarf-
-Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
+Common JoinedOrMissing UInteger Var(dwarf_version) Init(4) Negative(gstabs)
 Generate debug information in DWARF v2 (or later) format
 
 ggdb
diff --git gcc/opts.c gcc/opts.c
index 45b12fe..336554b 100644
--- gcc/opts.c
+++ gcc/opts.c
@@ -1700,12 +1700,24 @@ common_handle_option (struct gcc_options *opts,
       break;
 
     case OPT_gdwarf_:
-      if (value < 2 || value > 4)
-       error_at (loc, "dwarf version %d is not supported", value);
-      else
-       opts->x_dwarf_version = value;
-      set_debug_level (DWARF2_DEBUG, false, "", opts, opts_set, loc);
-      break;
+      {
+        /* Treat -gdwarf- without any argument (dwarf version) as equivalent to
+           -gdwarf-<default_version> */
+        const int max_dwarf_version = 4;
+        if (strlen (arg) == 0)
+          {
+            opts->x_dwarf_version = max_dwarf_version;
+          }
+        else
+          {
+            if (value < 2 || value > max_dwarf_version)
+              error_at (loc, "dwarf version %d is not supported", value);
+            else
+              opts->x_dwarf_version = value;
+          }
+        set_debug_level (DWARF2_DEBUG, false, "", opts, opts_set, loc);
+        break;
+      }
 
     case OPT_gsplit_dwarf:
       set_debug_level (NO_DEBUG, DEFAULT_GDB_EXTENSIONS, "", opts, opts_set,

Reply via email to