On Wed, Aug 23, 2017 at 12:29 AM, Alexandre Oliva <aol...@redhat.com> wrote: > On Aug 21, 2017, Richard Biener <richard.guent...@gmail.com> wrote: > >> +gno-statement-frontiers >> +Common Driver RejectNegative Var(debug_nonbind_markers_p, 0) Init(2) >> +Don't enforce progressive recommended breakpoint locations. >> + >> +gstatement-frontiers >> +Common Driver RejectNegative Var(debug_nonbind_markers_p, 1) >> +Emit progressive recommended breakpoint locations. > >> others get away with a single flag and Init(-1). That is, >> -gstatement-frontiers >> should set it to 1 already and -gno- to 0. Why do you need the explicit >> entry for gno-..? > > All debug options that support negation seem to have adopted this idiom; > without it, the negated options end up misparsed as -g with an argument, > and then set_debug_level complains that "no-..." is not a number. > > The logic of matching the longest option name prefix doesn't seem to > work very well when options have a prefix that is also a valid option > with a Joined(OrMissing) argument. > > The same problem applies to -O: -Ono-fast is not parsed as a negative of > -Ofast, but as -O with no-fast as the argument, even though no > RejectNegative flag is present under Ofast.
Ah, like we don't have -no-g but only -g0. I guess that there's -fno- is somewhere hardcoded and -g isn't handled that way. Would need to amend the options machinery somehow (new flag, Negatable?). Thus ok as in your patch for now. Richard. > -- > Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ > You must be the change you wish to see in the world. -- Gandhi > Be Free! -- http://FSFLA.org/ FSF Latin America board member > Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer