On Wed, Apr 03, 2013 at 11:07:04PM -0400, Jason Merrill wrote:
> On 04/02/2013 03:25 PM, Senthil Kumar Selvaraj wrote:
> >+gdwarf
> >+Common UInteger Var(dwarf_default_version, 4) Negative(gdwarf-)
> >+Generate debug information in the default DWARF version format
> 
> The Negative options need to form a circular chain, so gcoff should
> have Negative(gdwarf) and gdwarf should have Negative(gdwarf-).
> 
> I don't think you need a dwarf_default_version variable since
> there's already dwarf_version.
> 

Fixed those in the below patch.

> It would be nice to give a helpful diagnostic if people try to write
> -gdwarf2 to suggest that they either write -gdwarf-2 or -gdwarf -g2.
> 

I wasn't able to get this done in a clean way. To make the gdwarf option
handling code detect this error, the only I found was to make it 
JoinedOrMissing, and then raise the error if there was an argument
provided. Otherwise, I'd have to do it in the -g option case, which I
think is messy.

Regards
Senthil


diff --git gcc/common.opt gcc/common.opt
index e02e7ed..b9ba416 100644
--- gcc/common.opt
+++ gcc/common.opt
@@ -2308,9 +2308,13 @@ Common JoinedOrMissing
 Generate debug information in default format
 
 gcoff
-Common JoinedOrMissing Negative(gdwarf-)
+Common JoinedOrMissing Negative(gdwarf)
 Generate debug information in COFF format
 
+gdwarf
+Common Var(dwarf_version, 4) Negative(gdwarf-)
+Generate debug information in the default DWARF version format
+
 gdwarf-
 Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
 Generate debug information in DWARF v2 (or later) format
diff --git gcc/opts.c gcc/opts.c
index 45b12fe..60f290d 100644
--- gcc/opts.c
+++ gcc/opts.c
@@ -1699,6 +1699,8 @@ common_handle_option (struct gcc_options *opts,
       set_debug_level (SDB_DEBUG, false, arg, opts, opts_set, loc);
       break;
 
+    case OPT_gdwarf:
+      value = opts->x_dwarf_version;
     case OPT_gdwarf_:
       if (value < 2 || value > 4)
        error_at (loc, "dwarf version %d is not supported", value);

Reply via email to