X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/ea0a767697594d2eda37daf5ecbf2fdaf60d2189..bfdcc3a0b273c116e01d289ce52d400f22e4da14:/src/complain.c diff --git a/src/complain.c b/src/complain.c index 3b0041e8..b063c6b6 100644 --- a/src/complain.c +++ b/src/complain.c @@ -1,6 +1,6 @@ /* Declaration for error-reporting function for Bison. - Copyright (C) 2000-2002, 2004-2006, 2009-2011 Free Software + Copyright (C) 2000-2002, 2004-2006, 2009-2012 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -23,6 +23,7 @@ #include "system.h" #include +#include #include "complain.h" #include "files.h" @@ -94,7 +95,7 @@ error_message (location *loc, | Report a warning, and proceed. | `--------------------------------*/ -static void +void set_warning_issued (void) { static bool warning_issued = false; @@ -109,6 +110,8 @@ set_warning_issued (void) void warn_at (location loc, const char *message, ...) { + if (!(warnings_flag & warnings_other)) + return; set_warning_issued (); ERROR_MESSAGE (&loc, _("warning"), message); } @@ -117,14 +120,18 @@ void warn_at_indent (location loc, unsigned *indent, const char *message, ...) { + if (!(warnings_flag & warnings_other)) + return; set_warning_issued (); indent_ptr = indent; - ERROR_MESSAGE (&loc, _("warning"), message); + ERROR_MESSAGE (&loc, *indent ? NULL : _("warning"), message); } void warn (const char *message, ...) { + if (!(warnings_flag & warnings_other)) + return; set_warning_issued (); ERROR_MESSAGE (NULL, _("warning"), message); } @@ -137,7 +144,7 @@ warn (const char *message, ...) void complain_at (location loc, const char *message, ...) { - ERROR_MESSAGE (&loc, NULL, message); + ERROR_MESSAGE (&loc, _("error"), message); complaint_issued = true; } @@ -146,14 +153,14 @@ complain_at_indent (location loc, unsigned *indent, const char *message, ...) { indent_ptr = indent; - ERROR_MESSAGE (&loc, NULL, message); + ERROR_MESSAGE (&loc, *indent ? NULL : _("error"), message); complaint_issued = true; } void complain (const char *message, ...) { - ERROR_MESSAGE (NULL, NULL, message); + ERROR_MESSAGE (NULL, _("error"), message); complaint_issued = true; } @@ -178,6 +185,14 @@ yacc_at (location loc, const char *message, ...) } } +void +midrule_value_at (location loc, const char *message, ...) +{ + if (!(warnings_flag & warnings_midrule_values)) + return; + set_warning_issued (); + ERROR_MESSAGE (&loc, _("warning"), message); +} /*-------------------------------------------------. | A severe error has occurred, we cannot proceed. |