Home | History | Annotate | Line # | Download | only in lint1
externs1.h revision 1.235
      1  1.235    rillig /*	$NetBSD: externs1.h,v 1.235 2024/11/13 04:32:49 rillig Exp $	*/
      2    1.2       cgd 
      3    1.1       cgd /*
      4    1.1       cgd  * Copyright (c) 1994, 1995 Jochen Pohl
      5    1.1       cgd  * All Rights Reserved.
      6    1.1       cgd  *
      7    1.1       cgd  * Redistribution and use in source and binary forms, with or without
      8    1.1       cgd  * modification, are permitted provided that the following conditions
      9    1.1       cgd  * are met:
     10    1.1       cgd  * 1. Redistributions of source code must retain the above copyright
     11    1.1       cgd  *    notice, this list of conditions and the following disclaimer.
     12    1.1       cgd  * 2. Redistributions in binary form must reproduce the above copyright
     13    1.1       cgd  *    notice, this list of conditions and the following disclaimer in the
     14    1.1       cgd  *    documentation and/or other materials provided with the distribution.
     15    1.1       cgd  * 3. All advertising materials mentioning features or use of this software
     16    1.1       cgd  *    must display the following acknowledgement:
     17  1.194    rillig  *	This product includes software developed by Jochen Pohl for
     18    1.1       cgd  *	The NetBSD Project.
     19    1.1       cgd  * 4. The name of the author may not be used to endorse or promote products
     20    1.1       cgd  *    derived from this software without specific prior written permission.
     21    1.1       cgd  *
     22    1.1       cgd  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     23    1.1       cgd  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     24    1.1       cgd  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     25    1.1       cgd  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     26    1.1       cgd  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     27    1.1       cgd  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     28    1.1       cgd  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     29    1.1       cgd  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     30    1.1       cgd  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     31    1.1       cgd  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32    1.1       cgd  */
     33    1.1       cgd 
     34  1.175    rillig #include <signal.h>
     35  1.175    rillig 
     36    1.1       cgd /*
     37  1.175    rillig  * main1.c
     38    1.1       cgd  */
     39  1.220    rillig extern bool Fflag;
     40  1.220    rillig extern bool Pflag;
     41  1.220    rillig extern bool Tflag;
     42  1.208    rillig extern int aflag;
     43  1.208    rillig extern bool bflag;
     44  1.208    rillig extern bool cflag;
     45  1.208    rillig extern bool eflag;
     46  1.208    rillig extern bool hflag;
     47  1.208    rillig extern bool pflag;
     48  1.208    rillig extern bool rflag;
     49  1.208    rillig extern bool vflag;
     50  1.220    rillig extern bool wflag;
     51  1.208    rillig extern bool yflag;
     52  1.208    rillig extern bool zflag;
     53  1.208    rillig 
     54  1.208    rillig extern bool allow_trad;
     55  1.208    rillig extern bool allow_c90;
     56  1.208    rillig extern bool allow_c99;
     57  1.208    rillig extern bool allow_c11;
     58  1.208    rillig extern bool allow_c23;
     59  1.208    rillig extern bool allow_gcc;
     60  1.155    rillig 
     61  1.175    rillig extern sig_atomic_t fpe;
     62  1.175    rillig 
     63  1.208    rillig void norecover(void);
     64    1.1       cgd 
     65    1.1       cgd /*
     66    1.1       cgd  * cgram.y
     67    1.1       cgd  */
     68  1.208    rillig extern int block_level;
     69  1.208    rillig extern size_t mem_block_level;
     70  1.208    rillig extern int yydebug;
     71    1.1       cgd 
     72  1.208    rillig int yyerror(const char *);
     73  1.208    rillig int yyparse(void);
     74  1.227    rillig extern char *yytext;
     75    1.1       cgd 
     76    1.1       cgd /*
     77  1.220    rillig  * lex.c
     78    1.1       cgd  */
     79  1.208    rillig extern bool in_gcc_attribute;
     80  1.208    rillig extern pos_t curr_pos;
     81  1.208    rillig extern pos_t csrc_pos;
     82  1.208    rillig extern bool in_system_header;
     83  1.212    rillig extern symbol_kind sym_kind;
     84  1.208    rillig extern FILE *yyin;
     85  1.208    rillig 
     86  1.214    rillig void init_lex(void);
     87  1.208    rillig int64_t convert_integer(int64_t, tspec_t, unsigned int);
     88  1.221    rillig void reset_suppressions(void);
     89  1.208    rillig sym_t *getsym(sbuf_t *);
     90  1.208    rillig void clean_up_after_error(void);
     91  1.208    rillig sym_t *pushdown(const sym_t *);
     92  1.208    rillig sym_t *mktempsym(type_t *);
     93  1.221    rillig void symtab_remove_forever(sym_t *);
     94  1.208    rillig void symtab_remove_level(sym_t *);
     95  1.208    rillig void inssym(int, sym_t *);
     96  1.208    rillig void freeyyv(void *, int);
     97  1.208    rillig int yylex(void);
     98    1.1       cgd 
     99    1.1       cgd /*
    100    1.1       cgd  * mem1.c
    101    1.1       cgd  */
    102  1.208    rillig const char *record_filename(const char *, size_t);
    103  1.208    rillig int get_filename_id(const char *);
    104  1.208    rillig void add_directory_replacement(char *);
    105  1.178    rillig const char *transform_filename(const char *, size_t);
    106  1.178    rillig 
    107  1.196    rillig #ifdef DEBUG_MEM
    108  1.208    rillig void *block_zero_alloc(size_t, const char *);
    109  1.208    rillig void *level_zero_alloc(size_t, size_t, const char *);
    110  1.196    rillig #else
    111  1.208    rillig void *block_zero_alloc(size_t);
    112  1.208    rillig void *level_zero_alloc(size_t, size_t);
    113  1.196    rillig #define block_zero_alloc(size, descr) (block_zero_alloc)(size)
    114  1.196    rillig #define level_zero_alloc(level, size, descr) (level_zero_alloc)(level, size)
    115  1.196    rillig #endif
    116  1.208    rillig void level_free_all(size_t);
    117  1.178    rillig 
    118  1.196    rillig #ifdef DEBUG_MEM
    119  1.208    rillig void *expr_zero_alloc(size_t, const char *);
    120  1.196    rillig #else
    121  1.208    rillig void *expr_zero_alloc(size_t);
    122  1.196    rillig #define expr_zero_alloc(size, descr) (expr_zero_alloc)(size)
    123  1.196    rillig #endif
    124  1.208    rillig tnode_t *expr_alloc_tnode(void);
    125  1.208    rillig void expr_free_all(void);
    126  1.178    rillig memory_pool expr_save_memory(void);
    127  1.208    rillig void expr_restore_memory(memory_pool);
    128    1.1       cgd 
    129    1.1       cgd /*
    130  1.124    rillig  * debug.c
    131  1.124    rillig  */
    132  1.124    rillig 
    133  1.124    rillig #ifdef DEBUG
    134  1.232    rillig extern bool debug_enabled;
    135  1.183    rillig const char *decl_level_kind_name(decl_level_kind);
    136  1.149    rillig const char *scl_name(scl_t);
    137  1.212    rillig const char *symbol_kind_name(symbol_kind);
    138  1.195    rillig const char *type_qualifiers_string(type_qualifiers);
    139  1.233    rillig const char *type_attributes_string(type_attributes);
    140  1.191    rillig const char *function_specifier_name(function_specifier);
    141  1.225    rillig const char *named_constant_name(named_constant);
    142  1.208    rillig void debug_dcs(void);
    143  1.208    rillig void debug_dcs_all(void);
    144  1.208    rillig void debug_node(const tnode_t *);
    145  1.208    rillig void debug_type(const type_t *);
    146  1.208    rillig void debug_sym(const char *, const sym_t *, const char *);
    147  1.208    rillig void debug_symtab(void);
    148  1.208    rillig void debug_printf(const char *fmt, ...) __printflike(1, 2);
    149  1.208    rillig void debug_skip_indent(void);
    150  1.208    rillig void debug_indent_inc(void);
    151  1.208    rillig void debug_indent_dec(void);
    152  1.208    rillig bool debug_push_indented(bool);
    153  1.208    rillig void debug_pop_indented(bool);
    154  1.208    rillig void debug_enter_func(const char *);
    155  1.208    rillig void debug_step(const char *fmt, ...) __printflike(1, 2);
    156  1.208    rillig void debug_leave_func(const char *);
    157  1.226    rillig void debug_attribute_list(const attribute_list *);
    158  1.176    rillig #define	debug_enter()		debug_enter_func(__func__)
    159  1.176    rillig #define	debug_leave()		debug_leave_func(__func__)
    160  1.124    rillig #else
    161  1.124    rillig #define	debug_noop()		do { } while (false)
    162  1.204    rillig #define	debug_dcs()		debug_noop()
    163  1.204    rillig #define	debug_dcs_all()		debug_noop()
    164  1.151    rillig #define	debug_sym(p, sym, s)	debug_noop()
    165  1.151    rillig #define	debug_symtab()		debug_noop()
    166  1.128    rillig #define	debug_node(tn)		debug_noop()
    167  1.164    rillig #define	debug_type(tp)		debug_noop()
    168  1.125    rillig #define	debug_printf(...)	debug_noop()
    169  1.203    rillig #define	debug_skip_indent()	debug_noop()
    170  1.124    rillig #define	debug_indent_inc()	debug_noop()
    171  1.124    rillig #define	debug_indent_dec()	debug_noop()
    172  1.204    rillig #define debug_push_indented(c)	true
    173  1.204    rillig #define debug_pop_indented(c)	(void)(c)
    174  1.124    rillig #define	debug_enter()		debug_noop()
    175  1.144    rillig #define	debug_step(...)		debug_noop()
    176  1.124    rillig #define	debug_leave()		debug_noop()
    177  1.226    rillig #define	debug_attribute_list(list) debug_noop()
    178  1.124    rillig #endif
    179  1.124    rillig 
    180  1.124    rillig /*
    181    1.1       cgd  * err.c
    182    1.1       cgd  */
    183  1.208    rillig extern bool seen_error;
    184  1.208    rillig extern bool seen_warning;
    185  1.208    rillig extern int sytxerr;
    186  1.208    rillig extern bool any_query_enabled;
    187  1.209    rillig extern bool is_query_enabled[];
    188  1.208    rillig 
    189  1.208    rillig void msglist(void);
    190  1.208    rillig void error_at(int, const pos_t *, ...);
    191  1.208    rillig void warning_at(int, const pos_t *, ...);
    192  1.208    rillig void message_at(int, const pos_t *, ...);
    193  1.208    rillig void error(int, ...);
    194  1.208    rillig void warning(int, ...);
    195  1.208    rillig bool gnuism(int, ...);
    196  1.208    rillig void c99ism(int, ...);
    197  1.208    rillig void c11ism(int, ...);
    198  1.208    rillig void c23ism(int, ...);
    199  1.208    rillig void assert_failed(const char *, int, const char *, const char *) __dead;
    200  1.208    rillig void update_location(const char *, int, bool, bool);
    201  1.208    rillig void suppress_messages(const char *);
    202    1.1       cgd 
    203  1.208    rillig void query_message(int, ...);
    204  1.208    rillig void enable_queries(const char *);
    205  1.165    rillig 
    206    1.1       cgd /*
    207    1.1       cgd  * decl.c
    208    1.1       cgd  */
    209  1.208    rillig extern decl_level *dcs;
    210  1.208    rillig extern const char unnamed[];
    211  1.208    rillig extern int enumval;
    212  1.208    rillig 
    213  1.214    rillig void init_decl(void);
    214  1.208    rillig type_t *gettyp(tspec_t);
    215  1.208    rillig type_t *block_dup_type(const type_t *);
    216  1.208    rillig type_t *expr_dup_type(const type_t *);
    217  1.208    rillig type_t *expr_unqualified_type(const type_t *);
    218  1.208    rillig bool is_incomplete(const type_t *);
    219  1.208    rillig void dcs_add_function_specifier(function_specifier);
    220  1.208    rillig void dcs_add_storage_class(scl_t);
    221  1.208    rillig void dcs_add_type(type_t *);
    222  1.208    rillig void dcs_add_qualifiers(type_qualifiers);
    223  1.223    rillig void dcs_add_alignas(tnode_t *);
    224  1.208    rillig void dcs_add_packed(void);
    225  1.208    rillig void dcs_set_used(void);
    226  1.208    rillig void begin_declaration_level(decl_level_kind);
    227  1.208    rillig void end_declaration_level(void);
    228  1.208    rillig void dcs_set_asm(void);
    229  1.208    rillig void dcs_begin_type(void);
    230  1.208    rillig void dcs_end_type(void);
    231  1.208    rillig int length_in_bits(const type_t *, const char *);
    232  1.224    rillig unsigned int alignment(const type_t *);
    233  1.208    rillig sym_t *concat_symbols(sym_t *, sym_t *);
    234  1.208    rillig void check_type(sym_t *);
    235  1.208    rillig sym_t *declare_unnamed_member(void);
    236  1.208    rillig sym_t *declare_member(sym_t *);
    237  1.208    rillig sym_t *set_bit_field_width(sym_t *, int);
    238  1.208    rillig void add_type_qualifiers(type_qualifiers *, type_qualifiers);
    239  1.195    rillig qual_ptr *append_qualified_pointer(qual_ptr *, qual_ptr *);
    240  1.208    rillig sym_t *add_pointer(sym_t *, qual_ptr *);
    241  1.208    rillig sym_t *add_array(sym_t *, bool, int);
    242  1.219    rillig sym_t *add_function(sym_t *, parameter_list);
    243  1.208    rillig void check_extern_declaration(const sym_t *);
    244  1.208    rillig void check_function_definition(sym_t *, bool);
    245  1.208    rillig sym_t *declarator_name(sym_t *);
    246  1.208    rillig sym_t *old_style_function_parameter_name(sym_t *);
    247  1.208    rillig type_t *make_tag_type(sym_t *, tspec_t, bool, bool);
    248  1.208    rillig type_t *complete_struct_or_union(sym_t *);
    249  1.208    rillig type_t *complete_enum(sym_t *);
    250  1.208    rillig sym_t *enumeration_constant(sym_t *, int, bool);
    251  1.208    rillig void declare(sym_t *, bool, sbuf_t *);
    252  1.231    rillig void copy_usage_info(sym_t *, const sym_t *);
    253  1.208    rillig bool check_redeclaration(sym_t *, bool *);
    254  1.208    rillig bool pointer_types_are_compatible(const type_t *, const type_t *, bool);
    255  1.208    rillig bool types_compatible(const type_t *, const type_t *, bool, bool, bool *);
    256  1.231    rillig void complete_type(sym_t *, const sym_t *);
    257  1.208    rillig sym_t *declare_parameter(sym_t *, bool);
    258  1.208    rillig void check_func_lint_directives(void);
    259  1.208    rillig void check_func_old_style_parameters(void);
    260  1.208    rillig 
    261  1.208    rillig void declare_local(sym_t *, bool);
    262  1.208    rillig sym_t *abstract_name(void);
    263  1.208    rillig sym_t *abstract_enclosing_name(void);
    264  1.208    rillig void global_clean_up(void);
    265  1.208    rillig sym_t *declare_abstract_type(sym_t *);
    266  1.208    rillig void check_size(const sym_t *);
    267  1.208    rillig void mark_as_set(sym_t *);
    268  1.208    rillig void mark_as_used(sym_t *, bool, bool);
    269  1.208    rillig void check_usage(const decl_level *);
    270  1.208    rillig void check_usage_sym(bool, const sym_t *);
    271  1.208    rillig void end_translation_unit(void);
    272  1.208    rillig void print_previous_declaration(const sym_t *);
    273  1.208    rillig int to_int_constant(tnode_t *, bool);
    274    1.1       cgd 
    275    1.1       cgd /*
    276    1.1       cgd  * tree.c
    277    1.1       cgd  */
    278  1.178    rillig const tnode_t *before_conversion(const tnode_t *);
    279  1.208    rillig type_t *block_derive_type(type_t *, tspec_t);
    280  1.208    rillig type_t *expr_derive_type(type_t *, tspec_t);
    281  1.208    rillig bool is_compiler_builtin(const char *);
    282  1.208    rillig tnode_t *build_constant(type_t *, val_t *);
    283  1.208    rillig tnode_t *build_name(sym_t *, bool);
    284  1.213    rillig tnode_t *build_string(buffer *);
    285  1.208    rillig tnode_t *build_generic_selection(const tnode_t *,
    286  1.115    rillig 		    struct generic_association *);
    287  1.112    rillig 
    288  1.208    rillig tnode_t *build_binary(tnode_t *, op_t, bool, tnode_t *);
    289  1.208    rillig tnode_t *build_unary(op_t, bool, tnode_t *);
    290  1.208    rillig tnode_t *build_member_access(tnode_t *, op_t, bool, sbuf_t *);
    291  1.208    rillig tnode_t *cconv(tnode_t *);
    292  1.228    rillig bool is_typeok_bool_compares_with_zero(const tnode_t *, bool);
    293  1.208    rillig bool typeok(op_t, int, const tnode_t *, const tnode_t *);
    294  1.208    rillig tnode_t *promote(op_t, bool, tnode_t *);
    295  1.208    rillig tnode_t *convert(op_t, int, type_t *, tnode_t *);
    296  1.208    rillig void convert_constant(op_t, int, const type_t *, val_t *, val_t *);
    297  1.208    rillig tnode_t *build_sizeof(const type_t *);
    298  1.210    rillig tnode_t *build_offsetof(const type_t *, designation);
    299  1.208    rillig tnode_t *build_alignof(const type_t *);
    300  1.211    rillig tnode_t *cast(tnode_t *, bool, type_t *);
    301  1.216    rillig void add_function_argument(function_call *, tnode_t *);
    302  1.216    rillig tnode_t *build_function_call(tnode_t *, bool, function_call *);
    303  1.208    rillig val_t *integer_constant(tnode_t *, bool);
    304  1.235    rillig void expr(tnode_t *, bool, bool, bool, bool, const char *);
    305  1.208    rillig void check_expr_misc(const tnode_t *, bool, bool, bool, bool, bool, bool);
    306  1.208    rillig bool constant_addr(const tnode_t *, const sym_t **, ptrdiff_t *);
    307  1.213    rillig buffer *cat_strings(buffer *, buffer *);
    308  1.178    rillig unsigned int type_size_in_bits(const type_t *);
    309  1.208    rillig sym_t *find_member(const struct_or_union *, const char *);
    310  1.218    rillig uint64_t possible_bits(const tnode_t *);
    311  1.230    rillig bool attributes_contain(const attribute_list *, const char *);
    312    1.1       cgd 
    313  1.146    rillig void begin_statement_expr(void);
    314  1.145    rillig void do_statement_expr(tnode_t *);
    315  1.145    rillig tnode_t *end_statement_expr(void);
    316  1.197    rillig bool in_statement_expr(void);
    317  1.145    rillig 
    318    1.1       cgd /*
    319    1.1       cgd  * func.c
    320    1.1       cgd  */
    321  1.208    rillig extern sym_t *funcsym;
    322  1.208    rillig extern bool reached;
    323  1.208    rillig extern bool warn_about_unreachable;
    324  1.208    rillig extern bool suppress_fallthrough;
    325  1.208    rillig extern int nargusg;
    326  1.208    rillig extern pos_t argsused_pos;
    327  1.208    rillig extern int nvararg;
    328  1.208    rillig extern pos_t vapos;
    329  1.208    rillig extern int printflike_argnum;
    330  1.208    rillig extern pos_t printflike_pos;
    331  1.208    rillig extern int scanflike_argnum;
    332  1.208    rillig extern pos_t scanflike_pos;
    333  1.208    rillig extern bool suppress_constcond;
    334  1.208    rillig extern bool llibflg;
    335  1.208    rillig extern int lwarn;
    336  1.208    rillig extern bool suppress_bitfieldtype;
    337  1.208    rillig extern bool plibflg;
    338  1.208    rillig extern bool suppress_longlong;
    339  1.208    rillig 
    340  1.208    rillig void begin_control_statement(control_statement_kind);
    341  1.208    rillig void end_control_statement(control_statement_kind);
    342  1.235    rillig void check_statement_reachable(const char *);
    343  1.208    rillig void begin_function(sym_t *);
    344  1.208    rillig void end_function(void);
    345  1.208    rillig void named_label(sym_t *);
    346  1.208    rillig void case_label(tnode_t *);
    347  1.208    rillig void default_label(void);
    348  1.208    rillig void stmt_if_expr(tnode_t *);
    349  1.208    rillig void stmt_if_then_stmt(void);
    350  1.208    rillig void stmt_if_else_stmt(bool);
    351  1.208    rillig void stmt_switch_expr(tnode_t *);
    352  1.208    rillig void stmt_switch_expr_stmt(void);
    353  1.208    rillig void stmt_while_expr(tnode_t *);
    354  1.208    rillig void stmt_while_expr_stmt(void);
    355  1.208    rillig void stmt_do(void);
    356  1.208    rillig void stmt_do_while_expr(tnode_t *);
    357  1.208    rillig void stmt_for_exprs(tnode_t *, tnode_t *, tnode_t *);
    358  1.208    rillig void stmt_for_exprs_stmt(void);
    359  1.208    rillig void stmt_goto(sym_t *);
    360  1.208    rillig void stmt_continue(void);
    361  1.208    rillig void stmt_break(void);
    362  1.208    rillig void stmt_return(bool, tnode_t *);
    363  1.234    rillig void stmt_call_noreturn(void);
    364  1.208    rillig void global_clean_up_decl(bool);
    365  1.208    rillig void handle_lint_comment(lint_comment, int);
    366    1.1       cgd 
    367    1.1       cgd /*
    368    1.1       cgd  * init.c
    369    1.1       cgd  */
    370  1.208    rillig void begin_initialization(sym_t *);
    371  1.208    rillig void end_initialization(void);
    372  1.208    rillig sym_t *current_initsym(void);
    373  1.208    rillig 
    374  1.208    rillig void init_rbrace(void);
    375  1.208    rillig void init_lbrace(void);
    376  1.208    rillig void init_expr(tnode_t *);
    377  1.208    rillig void begin_designation(void);
    378  1.208    rillig void add_designator_member(sbuf_t *);
    379  1.208    rillig void add_designator_subscript(range_t);
    380  1.210    rillig void designation_push(designation *, designator_kind, const sym_t *, size_t);
    381    1.1       cgd 
    382    1.1       cgd /*
    383    1.1       cgd  * emit.c
    384    1.1       cgd  */
    385  1.208    rillig void outtype(const type_t *);
    386  1.208    rillig void outsym(const sym_t *, scl_t, def_t);
    387  1.208    rillig void outfdef(const sym_t *, const pos_t *, bool, bool, const sym_t *);
    388  1.208    rillig void outcall(const tnode_t *, bool, bool);
    389  1.208    rillig void outusg(const sym_t *);
    390   1.22  christos 
    391   1.22  christos /*
    392   1.60    rillig  * lex.c
    393   1.60    rillig  */
    394  1.208    rillig int lex_name(const char *, size_t);
    395  1.208    rillig int lex_integer_constant(const char *, size_t, int);
    396  1.208    rillig int lex_floating_constant(const char *, size_t);
    397  1.208    rillig int lex_operator(int, op_t);
    398  1.208    rillig int lex_string(void);
    399  1.208    rillig int lex_wide_string(void);
    400  1.208    rillig int lex_character_constant(void);
    401  1.208    rillig int lex_wide_character_constant(void);
    402  1.208    rillig void lex_directive(const char *);
    403  1.208    rillig void lex_next_line(void);
    404  1.208    rillig void lex_comment(void);
    405  1.208    rillig void lex_slash_slash_comment(void);
    406  1.208    rillig void lex_unknown_character(int);
    407  1.208    rillig int lex_input(void);
    408  1.215    rillig bool quoted_next(const buffer *, quoted_iterator *);
    409  1.227    rillig balanced_token_sequence lex_balanced(void);
    410   1.60    rillig 
    411   1.60    rillig /*
    412  1.101    rillig  * ckbool.c
    413  1.101    rillig  */
    414  1.208    rillig bool typeok_scalar_strict_bool(op_t, const mod_t *, int,
    415  1.101    rillig 		    const tnode_t *, const tnode_t *);
    416  1.208    rillig bool fallback_symbol_strict_bool(sym_t *);
    417  1.101    rillig 
    418  1.101    rillig /*
    419  1.100    rillig  * ckctype.c
    420  1.100    rillig  */
    421  1.216    rillig void check_ctype_function_call(const function_call *);
    422  1.208    rillig void check_ctype_macro_invocation(const tnode_t *, const tnode_t *);
    423  1.100    rillig 
    424  1.100    rillig /*
    425   1.66    rillig  * ckgetopt.c
    426   1.66    rillig  */
    427  1.208    rillig void check_getopt_begin_while(const tnode_t *);
    428  1.208    rillig void check_getopt_begin_switch(void);
    429  1.208    rillig void check_getopt_case_label(int64_t);
    430  1.208    rillig void check_getopt_end_switch(void);
    431  1.208    rillig void check_getopt_end_while(void);
    432  1.217    rillig 
    433  1.217    rillig /* cksnprintb.c */
    434  1.222    rillig void check_snprintb(const function_call *);
    435