bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

diagnostics: expose a means to know whether a warning is enabled


From: Akim Demaille
Subject: diagnostics: expose a means to know whether a warning is enabled
Date: Wed, 24 Apr 2019 07:37:51 +0200

commit 19ea6b14050674c9e5511ddc68fde16f3ccebb17
Author: Akim Demaille <address@hidden>
Date:   Thu Mar 28 14:48:00 2019 +0100

    diagnostics: expose a means to know whether a warning is enabled
    
    * src/complain.h, src/complain.c (warning_is_enabled): New.

diff --git a/src/complain.c b/src/complain.c
index a42b6a06..108a1fbd 100644
--- a/src/complain.c
+++ b/src/complain.c
@@ -338,12 +338,17 @@ warning_is_unset (warnings flags)
   return true;
 }
 
+bool
+warning_is_enabled (warnings flags)
+{
+  return severity_warning <= warning_severity (flags);
+}
+
 /** Display a "[-Wyacc]" like message on \a out.  */
 
 static void
 warnings_print_categories (warnings warn_flags, FILE *out)
 {
-  /* Display only the first match, the second is "-Wall".  */
   for (size_t i = 0; warnings_args[i]; ++i)
     if (warn_flags & warnings_types[i])
       {
@@ -356,6 +361,7 @@ warnings_print_categories (warnings warn_flags, FILE *out)
                  warnings_args[i]);
         end_use_class (style, out);
         fputc (']', out);
+        /* Display only the first match, the second is "-Wall".  */
         return;
       }
 }
@@ -426,8 +432,7 @@ error_message (const location *loc, warnings flags, 
severity sever,
   fflush (stderr);
 }
 
-/** Raise a complaint. That can be a fatal error, an error or just a
-    warning.  */
+/** Raise a complaint (fatal error, error or just warning).  */
 
 static void
 complains (const location *loc, warnings flags, const char *message,
diff --git a/src/complain.h b/src/complain.h
index 199f388d..9028b93a 100644
--- a/src/complain.h
+++ b/src/complain.h
@@ -125,6 +125,9 @@ typedef enum
     (Never enabled, never disabled). */
 bool warning_is_unset (warnings flags);
 
+/** Whether warnings of \a flags should be reported. */
+bool warning_is_enabled (warnings flags);
+
 /** Make a complaint, with maybe a location.  */
 void complain (location const *loc, warnings flags, char const *message, ...)
   __attribute__ ((__format__ (__printf__, 3, 4)));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]