gcc/ChangeLog:
2019-03-27 Martin Liska <[email protected]>
* dbgcnt.c (print_limit_reach): New function.
(dbg_cnt): Use it.
---
gcc/dbgcnt.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/gcc/dbgcnt.c b/gcc/dbgcnt.c
index 5a7c9a8bf6e..cfa03d611ee 100644
--- a/gcc/dbgcnt.c
+++ b/gcc/dbgcnt.c
@@ -59,21 +59,27 @@ dbg_cnt_is_enabled (enum debug_counter index)
return v > limit_low[index] && v <= limit_high[index];
}
+static void
+print_limit_reach (const char *counter, int limit, bool upper_p)
+{
+ char buffer[128];
+ sprintf (buffer, "***dbgcnt: %s limit %d reached for %s.***\n",
+ upper_p ? "upper" : "lower", limit, counter);
+ fputs (buffer, stderr);
+ if (dump_file)
+ fputs (buffer, dump_file);
+}
+
bool
dbg_cnt (enum debug_counter index)
{
count[index]++;
- if (dump_file)
- {
- /* Do not print the info for default lower limit. */
- if (count[index] == limit_low[index] && limit_low[index] > 0)
- fprintf (dump_file, "***dbgcnt: lower limit %d reached for %s.***\n",
- limit_low[index], map[index].name);
- else if (count[index] == limit_high[index])
- fprintf (dump_file, "***dbgcnt: upper limit %d reached for %s.***\n",
- limit_high[index], map[index].name);
- }
+ /* Do not print the info for default lower limit. */
+ if (count[index] == limit_low[index] && limit_low[index] > 0)
+ print_limit_reach (map[index].name, limit_low[index], false);
+ else if (count[index] == limit_high[index])
+ print_limit_reach (map[index].name, limit_high[index], true);
return dbg_cnt_is_enabled (index);
}