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