Message ID | 34c233ce-749e-6395-a85f-736d7e1fe031@suse.cz |
---|---|
State | New |
Headers | show |
Series | Improve -dbg-cnt error message and support :0. | expand |
On Mon, Nov 18, 2019 at 11:34 AM Martin Liška <mliska@suse.cz> wrote: > > Hi. > > The patch fixes missing diagnostics for situations like: > > $ gcc -fdbg-cnt=match123:1 ... > > and I see it beneficial to support foo:0 in order to no allow > any execution of dbg_cnt(foo). It's handy for passes that are not so > easy to disable. > > Ready for trunk? OK. > Thanks, > Martin > > gcc/ChangeLog: > > 2019-11-18 Martin Liska <mliska@suse.cz> > > * dbgcnt.c (dbg_cnt_set_limit_by_name): Provide error > message for an unknown counter. > (dbg_cnt_process_single_pair): Support 0 as minimum value. > (dbg_cnt_process_opt): Remove unreachable code. > --- > gcc/dbgcnt.c | 18 +++++++----------- > 1 file changed, 7 insertions(+), 11 deletions(-) > >
diff --git a/gcc/dbgcnt.c b/gcc/dbgcnt.c index c675c644007..f58ef8fd00e 100644 --- a/gcc/dbgcnt.c +++ b/gcc/dbgcnt.c @@ -150,7 +150,11 @@ dbg_cnt_set_limit_by_name (const char *name, unsigned int low, break; if (i < 0) - return false; + { + error ("cannot find a valid counter name %qs of %<-fdbg-cnt=%> option", + name); + return false; + } return dbg_cnt_set_limit_by_index ((enum debug_counter) i, name, low, high); } @@ -172,8 +176,9 @@ dbg_cnt_process_single_pair (char *name, char *str) if (value2 == NULL) { - low = 1; high = strtol (value1, NULL, 10); + /* Let's allow 0:0. */ + low = high == 0 ? 0 : 1; } else { @@ -209,15 +214,6 @@ dbg_cnt_process_opt (const char *arg) } start += strlen (tokens[i]) + 1; } - - if (i != tokens.length ()) - { - char *buffer = XALLOCAVEC (char, start + 2); - sprintf (buffer, "%*c", start + 1, '^'); - error ("cannot find a valid counter:value pair:"); - error ("%<-fdbg-cnt=%s%>", arg); - error (" %s", buffer); - } } /* Print name, limit and count of all counters. */