Commit eab1ee22 by Fritz Reese Committed by Fritz Reese

Allow warning flags to associate through gfc_error.

	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
parent 5304d044
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> 2016-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/78178 PR fortran/78178
......
...@@ -67,7 +67,7 @@ gfc_push_suppress_errors (void) ...@@ -67,7 +67,7 @@ gfc_push_suppress_errors (void)
} }
static 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 static bool
gfc_warning (int opt, const char *gmsgid, va_list ap) ATTRIBUTE_GCC_GFC(2,0); 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, ...) ...@@ -902,7 +902,7 @@ gfc_notify_std (int std, const char *gmsgid, ...)
if (warning) if (warning)
gfc_warning (0, buffer, argp); gfc_warning (0, buffer, argp);
else else
gfc_error (buffer, argp); gfc_error (0, buffer, argp);
va_end (argp); va_end (argp);
return (warning && !warnings_are_errors) ? true : false; return (warning && !warnings_are_errors) ? true : false;
...@@ -1233,7 +1233,7 @@ gfc_warning_check (void) ...@@ -1233,7 +1233,7 @@ gfc_warning_check (void)
/* Issue an error. */ /* Issue an error. */
static void static void
gfc_error (const char *gmsgid, va_list ap) gfc_error (int opt, const char *gmsgid, va_list ap)
{ {
va_list argp; va_list argp;
va_copy (argp, ap); va_copy (argp, ap);
...@@ -1241,7 +1241,7 @@ gfc_error (const char *gmsgid, va_list ap) ...@@ -1241,7 +1241,7 @@ gfc_error (const char *gmsgid, va_list ap)
if (warnings_not_errors) if (warnings_not_errors)
{ {
gfc_warning (/*opt=*/0, gmsgid, argp); gfc_warning (opt, gmsgid, argp);
va_end (argp); va_end (argp);
return; return;
} }
...@@ -1289,11 +1289,21 @@ gfc_error (const char *gmsgid, va_list ap) ...@@ -1289,11 +1289,21 @@ gfc_error (const char *gmsgid, va_list ap)
void 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, ...) gfc_error (const char *gmsgid, ...)
{ {
va_list argp; va_list argp;
va_start (argp, gmsgid); va_start (argp, gmsgid);
gfc_error (gmsgid, argp); gfc_error (0, gmsgid, argp);
va_end (argp); va_end (argp);
} }
......
...@@ -2730,6 +2730,7 @@ bool gfc_warning_now_at (location_t loc, int opt, const char *gmsgid, ...) ...@@ -2730,6 +2730,7 @@ bool gfc_warning_now_at (location_t loc, int opt, const char *gmsgid, ...)
void gfc_clear_warning (void); void gfc_clear_warning (void);
void gfc_warning_check (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 (const char *, ...) ATTRIBUTE_GCC_GFC(1,2);
void gfc_error_now (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); void gfc_fatal_error (const char *, ...) ATTRIBUTE_NORETURN ATTRIBUTE_GCC_GFC(1,2);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment