diff mbox series

Improve -dbg-cnt error message and support :0.

Message ID 34c233ce-749e-6395-a85f-736d7e1fe031@suse.cz
State New
Headers show
Series Improve -dbg-cnt error message and support :0. | expand

Commit Message

Martin Liška Nov. 18, 2019, 10:34 a.m. UTC
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?
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(-)

Comments

Richard Biener Nov. 18, 2019, 11 a.m. UTC | #1
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 mbox series

Patch

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.   */