]> git.saurik.com Git - bison.git/blame - src/complain.h
Add -Wother so -Wnone suppresses all warnings.
[bison.git] / src / complain.h
CommitLineData
a0f6b076 1/* Declaration for error-reporting function for Bison.
6e30ede8 2
ea0a7676
JD
3 Copyright (C) 2000-2002, 2006, 2009-2011 Free Software Foundation,
4 Inc.
a0f6b076 5
f16b0819
PE
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
a0f6b076
AD
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
f16b0819 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
a0f6b076
AD
18
19#ifndef COMPLAIN_H_
ee000ba4 20# define COMPLAIN_H_ 1
a0f6b076 21
ee000ba4
AD
22# include "location.h"
23
24# ifdef __cplusplus
a0f6b076 25extern "C" {
ee000ba4 26# endif
a0f6b076 27
8ffd7912
JD
28/** Informative messages, but we proceed. Report iff
29 <tt>warnings_flag & warnings_other</tt>. */
a0f6b076 30
81ebdef9 31void warn (char const *format, ...)
52489d44
AD
32 __attribute__ ((__format__ (__printf__, 1, 2)));
33
81ebdef9 34void warn_at (location loc, char const *format, ...)
e9955c83 35 __attribute__ ((__format__ (__printf__, 2, 3)));
a0f6b076 36
348f5608
AR
37/* Generate a message aligned by an indent.
38 When *indent == 0, assign message's indent to *indent,
39 When *indent > 0, align the message by *indent value. */
40void warn_at_indent (location loc, unsigned *indent,
41 char const *format, ...)
42 __attribute__ ((__format__ (__printf__, 3, 4)));
43
23eb2a69 44/** An error, but we continue and die later. */
a0f6b076 45
81ebdef9 46void complain (char const *format, ...)
52489d44
AD
47 __attribute__ ((__format__ (__printf__, 1, 2)));
48
81ebdef9 49void complain_at (location loc, char const *format, ...)
e9955c83 50 __attribute__ ((__format__ (__printf__, 2, 3)));
a0f6b076 51
348f5608
AR
52/* Generate a message aligned by an indent.
53 When *indent == 0, assign message's indent to *indent,
54 When *indent > 0, align the message by *indent value. */
55void complain_at_indent (location loc, unsigned *indent,
56 char const *format, ...)
57 __attribute__ ((__format__ (__printf__, 3, 4)));
58
663ce7bb
AD
59/** An incompatibility with POSIX Yacc: mapped either to warn* or
60 complain* depending on yacc_flag. */
61
62void yacc_at (location loc, char const *format, ...)
63 __attribute__ ((__format__ (__printf__, 2, 3)));
64
8ffd7912
JD
65/** A midrule-value warning. Report iff
66 <tt>warnings_flag & warnings_midrule_values</tt>. */
67
68void midrule_value_at (location loc, char const *format, ...)
69 __attribute__ ((__format__ (__printf__, 2, 3)));
663ce7bb 70
23eb2a69 71/** A fatal error, causing immediate exit. */
a0f6b076 72
81ebdef9 73void fatal (char const *format, ...)
ec88357a 74 __attribute__ ((__noreturn__, __format__ (__printf__, 1, 2)));
e9955c83 75
81ebdef9 76void fatal_at (location loc, char const *format, ...)
ec88357a 77 __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
a0f6b076 78
23eb2a69 79/** Whether an error was reported. */
ec88357a 80extern bool complaint_issued;
a0f6b076 81
ee000ba4 82# ifdef __cplusplus
a0f6b076 83}
ee000ba4 84# endif
a0f6b076
AD
85
86#endif /* !COMPLAIN_H_ */