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);