Allow warning flags to associate through gfc_error.
authorFritz Reese <fritzoreese@gmail.com>
Wed, 2 Nov 2016 14:46:33 +0000 (14:46 +0000)
committerFritz Reese <foreese@gcc.gnu.org>
Wed, 2 Nov 2016 14:46:33 +0000 (14:46 +0000)
gcc/fortran/
* gfortran.h (gfc_error): New declaration for gfc_error with 'opt'.
* error.c (gfc_error): Add optional 'opt' argument.
* error.c (gfc_notify_std): Call fully-qualified gfc_error.

From-SVN: r241794

gcc/fortran/ChangeLog
gcc/fortran/error.c
gcc/fortran/gfortran.h

index fd51989e402ad48639b98c79afcd4c8c29dc605d..b92928ce443343a3f747b0d1d4d646e3eb8c0429 100644 (file)
@@ -1,3 +1,9 @@
+2016-11-02  Fritz Reese <fritzoreese@gmail.com>
+
+       * gfortran.h (gfc_error): New declaration for gfc_error with 'opt'.
+       * error.c (gfc_error): Add optional 'opt' argument.
+       * error.c (gfc_notify_std): Call fully-qualified gfc_error.
+
 2016-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/78178
index fe91419ce445ee868491488045c1a1c8b41be42d..0fd8a4e74e308b3294f4e93d49f0af68826eb3d2 100644 (file)
@@ -67,7 +67,7 @@ gfc_push_suppress_errors (void)
 }
 
 static void
-gfc_error (const char *gmsgid, va_list ap)  ATTRIBUTE_GCC_GFC(1,0);
+gfc_error (int opt, const char *gmsgid, va_list ap)  ATTRIBUTE_GCC_GFC(2,0);
 
 static bool
 gfc_warning (int opt, const char *gmsgid, va_list ap) ATTRIBUTE_GCC_GFC(2,0);
@@ -902,7 +902,7 @@ gfc_notify_std (int std, const char *gmsgid, ...)
   if (warning)
     gfc_warning (0, buffer, argp);
   else
-    gfc_error (buffer, argp);
+    gfc_error (0, buffer, argp);
   va_end (argp);
 
   return (warning && !warnings_are_errors) ? true : false;
@@ -1233,7 +1233,7 @@ gfc_warning_check (void)
 /* Issue an error.  */
 
 static void
-gfc_error (const char *gmsgid, va_list ap)
+gfc_error (int opt, const char *gmsgid, va_list ap)
 {
   va_list argp;
   va_copy (argp, ap);
@@ -1241,7 +1241,7 @@ gfc_error (const char *gmsgid, va_list ap)
 
   if (warnings_not_errors)
     {
-      gfc_warning (/*opt=*/0, gmsgid, argp);
+      gfc_warning (opt, gmsgid, argp);
       va_end (argp);
       return;
     }
@@ -1288,12 +1288,22 @@ gfc_error (const char *gmsgid, va_list ap)
 }
 
 
+void
+gfc_error (int opt, const char *gmsgid, ...)
+{
+  va_list argp;
+  va_start (argp, gmsgid);
+  gfc_error (opt, gmsgid, argp);
+  va_end (argp);
+}
+
+
 void
 gfc_error (const char *gmsgid, ...)
 {
   va_list argp;
   va_start (argp, gmsgid);
-  gfc_error (gmsgid, argp);
+  gfc_error (0, gmsgid, argp);
   va_end (argp);
 }
 
index ea4437c5d833e139202c85ebacb4c12784bf5c8f..b559e8ac5cb0503d2f87929f61703673c1733dbf 100644 (file)
@@ -2730,6 +2730,7 @@ bool gfc_warning_now_at (location_t loc, int opt, const char *gmsgid, ...)
 void gfc_clear_warning (void);
 void gfc_warning_check (void);
 
+void gfc_error (int opt, const char *, ...) ATTRIBUTE_GCC_GFC(2,3);
 void gfc_error (const char *, ...) ATTRIBUTE_GCC_GFC(1,2);
 void gfc_error_now (const char *, ...) ATTRIBUTE_GCC_GFC(1,2);
 void gfc_fatal_error (const char *, ...) ATTRIBUTE_NORETURN ATTRIBUTE_GCC_GFC(1,2);