SYMBOL INDEX (464 symbols across 54 files) FILE: chibicc.h type Type (line 28) | typedef struct Type Type; type Node (line 29) | typedef struct Node Node; type Member (line 30) | typedef struct Member Member; type Relocation (line 31) | typedef struct Relocation Relocation; type Hideset (line 32) | typedef struct Hideset Hideset; type StringArray (line 38) | typedef struct { type TokenKind (line 52) | typedef enum { type File (line 62) | typedef struct { type Token (line 73) | typedef struct Token Token; type Token (line 74) | struct Token { type Obj (line 126) | typedef struct Obj Obj; type Obj (line 127) | struct Obj { type Relocation (line 167) | typedef struct Relocation Relocation; type Relocation (line 168) | struct Relocation { type NodeKind (line 176) | typedef enum { type Node (line 228) | struct Node { type TypeKind (line 301) | typedef enum { type Type (line 320) | struct Type { type Member (line 362) | struct Member { type HashEntry (line 428) | typedef struct { type HashMap (line 434) | typedef struct { FILE: codegen.c function println (line 17) | __attribute__((format(printf, 1, 2))) function count (line 26) | static int count(void) { function push (line 31) | static void push(void) { function pop (line 36) | static void pop(char *arg) { function pushf (line 41) | static void pushf(void) { function popf (line 47) | static void popf(int reg) { function align_to (line 55) | int align_to(int n, int align) { function gen_addr (line 81) | static void gen_addr(Node *node) { function load (line 186) | static void load(Type *ty) { function store (line 229) | static void store(Type *ty) { function cmp_zero (line 261) | static void cmp_zero(Type *ty) { function getTypeId (line 286) | static int getTypeId(Type *ty) { function cast (line 390) | static void cast(Type *from, Type *to) { function has_flonum (line 419) | static bool has_flonum(Type *ty, int lo, int hi, int offset) { function has_flonum1 (line 437) | static bool has_flonum1(Type *ty) { function has_flonum2 (line 441) | static bool has_flonum2(Type *ty) { function push_struct (line 445) | static void push_struct(Type *ty) { function push_args2 (line 456) | static void push_args2(Node *args, bool first_pass) { function push_args (line 504) | static int push_args(Node *node) { function copy_ret_buffer (line 573) | static void copy_ret_buffer(Obj *var) { function copy_struct_reg (line 610) | static void copy_struct_reg(void) { function copy_struct_mem (line 651) | static void copy_struct_mem(void) { function builtin_alloca (line 663) | static void builtin_alloca(void) { function gen_expr (line 692) | static void gen_expr(Node *node) { function gen_stmt (line 1188) | static void gen_stmt(Node *node) { function assign_lvar_offsets (line 1310) | static void assign_lvar_offsets(Obj *prog) { function emit_data (line 1378) | static void emit_data(Obj *prog) { function store_fp (line 1435) | static void store_fp(int r, int offset, int sz) { function store_gp (line 1447) | static void store_gp(int r, int offset, int sz) { function emit_text (line 1470) | static void emit_text(Obj *prog) { function codegen (line 1585) | void codegen(Obj *prog, FILE *out) { FILE: hashmap.c function fnv_hash (line 17) | static uint64_t fnv_hash(char *s, int len) { function rehash (line 28) | static void rehash(HashMap *map) { function match (line 55) | static bool match(HashEntry *ent, char *key, int keylen) { function HashEntry (line 60) | static HashEntry *get_entry(HashMap *map, char *key, int keylen) { function HashEntry (line 76) | static HashEntry *get_or_insert_entry(HashMap *map, char *key, int keyle... function hashmap_put (line 117) | void hashmap_put(HashMap *map, char *key, void *val) { function hashmap_put2 (line 121) | void hashmap_put2(HashMap *map, char *key, int keylen, void *val) { function hashmap_delete (line 126) | void hashmap_delete(HashMap *map, char *key) { function hashmap_delete2 (line 130) | void hashmap_delete2(HashMap *map, char *key, int keylen) { function hashmap_test (line 136) | void hashmap_test(void) { FILE: include/stdarg.h type __va_elem (line 4) | typedef struct { type __va_elem (line 11) | typedef __va_elem va_list[1]; type va_list (line 55) | typedef va_list __gnuc_va_list; FILE: include/stdatomic.h type memory_order (line 15) | typedef enum { type _Bool (line 63) | typedef _Atomic _Bool atomic_flag; type _Bool (line 64) | typedef _Atomic _Bool atomic_bool; type atomic_char (line 65) | typedef _Atomic char atomic_char; type atomic_schar (line 66) | typedef _Atomic signed char atomic_schar; type atomic_uchar (line 67) | typedef _Atomic unsigned char atomic_uchar; type atomic_short (line 68) | typedef _Atomic short atomic_short; type atomic_ushort (line 69) | typedef _Atomic unsigned short atomic_ushort; type atomic_int (line 70) | typedef _Atomic int atomic_int; type atomic_uint (line 71) | typedef _Atomic unsigned int atomic_uint; type atomic_long (line 72) | typedef _Atomic long atomic_long; type atomic_ulong (line 73) | typedef _Atomic unsigned long atomic_ulong; type atomic_llong (line 74) | typedef _Atomic long long atomic_llong; type atomic_ullong (line 75) | typedef _Atomic unsigned long long atomic_ullong; type atomic_char16_t (line 76) | typedef _Atomic unsigned short atomic_char16_t; type atomic_char32_t (line 77) | typedef _Atomic unsigned atomic_char32_t; type atomic_wchar_t (line 78) | typedef _Atomic unsigned atomic_wchar_t; type atomic_int_least8_t (line 79) | typedef _Atomic signed char atomic_int_least8_t; type atomic_uint_least8_t (line 80) | typedef _Atomic unsigned char atomic_uint_least8_t; type atomic_int_least16_t (line 81) | typedef _Atomic short atomic_int_least16_t; type atomic_uint_least16_t (line 82) | typedef _Atomic unsigned short atomic_uint_least16_t; type atomic_int_least32_t (line 83) | typedef _Atomic int atomic_int_least32_t; type atomic_uint_least32_t (line 84) | typedef _Atomic unsigned int atomic_uint_least32_t; type atomic_int_least64_t (line 85) | typedef _Atomic long atomic_int_least64_t; type atomic_uint_least64_t (line 86) | typedef _Atomic unsigned long atomic_uint_least64_t; type atomic_int_fast8_t (line 87) | typedef _Atomic signed char atomic_int_fast8_t; type atomic_uint_fast8_t (line 88) | typedef _Atomic unsigned char atomic_uint_fast8_t; type atomic_int_fast16_t (line 89) | typedef _Atomic short atomic_int_fast16_t; type atomic_uint_fast16_t (line 90) | typedef _Atomic unsigned short atomic_uint_fast16_t; type atomic_int_fast32_t (line 91) | typedef _Atomic int atomic_int_fast32_t; type atomic_uint_fast32_t (line 92) | typedef _Atomic unsigned int atomic_uint_fast32_t; type atomic_int_fast64_t (line 93) | typedef _Atomic long atomic_int_fast64_t; type atomic_uint_fast64_t (line 94) | typedef _Atomic unsigned long atomic_uint_fast64_t; type atomic_intptr_t (line 95) | typedef _Atomic long atomic_intptr_t; type atomic_uintptr_t (line 96) | typedef _Atomic unsigned long atomic_uintptr_t; type atomic_size_t (line 97) | typedef _Atomic unsigned long atomic_size_t; type atomic_ptrdiff_t (line 98) | typedef _Atomic long atomic_ptrdiff_t; type atomic_intmax_t (line 99) | typedef _Atomic long atomic_intmax_t; type atomic_uintmax_t (line 100) | typedef _Atomic unsigned long atomic_uintmax_t; FILE: include/stddef.h type wchar_t (line 8) | typedef unsigned int wchar_t; FILE: main.c type FileType (line 3) | typedef enum { function usage (line 37) | static void usage(int status) { function take_arg (line 42) | static bool take_arg(char *arg) { function add_default_include_paths (line 53) | static void add_default_include_paths(char *argv0) { function define (line 68) | static void define(char *str) { function FileType (line 76) | static FileType parse_opt_x(char *s) { function parse_args (line 114) | static void parse_args(int argc, char **argv) { function FILE (line 350) | static FILE *open_file(char *path) { function endswith (line 360) | static bool endswith(char *p, char *q) { function cleanup (line 375) | static void cleanup(void) { function run_subprocess (line 391) | static void run_subprocess(char **argv) { function run_cc1 (line 414) | static void run_cc1(int argc, char **argv, char *input, char *output) { function print_tokens (line 433) | static void print_tokens(Token *tok) { function in_std_include_path (line 448) | static bool in_std_include_path(char *path) { function print_dependencies (line 461) | static void print_dependencies(void) { function Token (line 497) | static Token *must_tokenize_file(char *path) { function Token (line 504) | static Token *append_tokens(Token *tok1, Token *tok2) { function cc1 (line 515) | static void cc1(void) { function assemble (line 570) | static void assemble(char *input, char *output) { function file_exists (line 586) | bool file_exists(char *path) { function run_linker (line 615) | static void run_linker(StringArray *inputs, char *output) { function FileType (line 682) | static FileType get_file_type(char *filename) { function main (line 700) | int main(int argc, char **argv) { FILE: parse.c type VarScope (line 23) | typedef struct { type Scope (line 31) | typedef struct Scope Scope; type Scope (line 32) | struct Scope { type VarAttr (line 42) | typedef struct { type Initializer (line 54) | typedef struct Initializer Initializer; type Initializer (line 55) | struct Initializer { type InitDesg (line 75) | typedef struct InitDesg InitDesg; type InitDesg (line 76) | struct InitDesg { function align_down (line 159) | static int align_down(int n, int align) { function enter_scope (line 163) | static void enter_scope(void) { function leave_scope (line 169) | static void leave_scope(void) { function VarScope (line 174) | static VarScope *find_var(Token *tok) { function Type (line 183) | static Type *find_tag(Token *tok) { function Node (line 192) | static Node *new_node(NodeKind kind, Token *tok) { function Node (line 199) | static Node *new_binary(NodeKind kind, Node *lhs, Node *rhs, Token *tok) { function Node (line 206) | static Node *new_unary(NodeKind kind, Node *expr, Token *tok) { function Node (line 212) | static Node *new_num(int64_t val, Token *tok) { function Node (line 218) | static Node *new_long(int64_t val, Token *tok) { function Node (line 225) | static Node *new_ulong(long val, Token *tok) { function Node (line 232) | static Node *new_var_node(Obj *var, Token *tok) { function Node (line 238) | static Node *new_vla_ptr(Obj *var, Token *tok) { function Node (line 244) | Node *new_cast(Node *expr, Type *ty) { function VarScope (line 255) | static VarScope *push_scope(char *name) { function Initializer (line 261) | static Initializer *new_initializer(Type *ty, bool is_flexible) { function Obj (line 301) | static Obj *new_var(char *name, Type *ty) { function Obj (line 310) | static Obj *new_lvar(char *name, Type *ty) { function Obj (line 318) | static Obj *new_gvar(char *name, Type *ty) { function Obj (line 332) | static Obj *new_anon_gvar(Type *ty) { function Obj (line 336) | static Obj *new_string_literal(char *p, Type *ty) { function Type (line 348) | static Type *find_typedef(Token *tok) { function push_tag_scope (line 357) | static void push_tag_scope(Token *tok, Type *ty) { function Type (line 381) | static Type *declspec(Token **rest, Token *tok, VarAttr *attr) { function Type (line 584) | static Type *func_params(Token **rest, Token *tok, Type *ty) { function Type (line 636) | static Type *array_dimensions(Token **rest, Token *tok, Type *ty) { function Type (line 657) | static Type *type_suffix(Token **rest, Token *tok, Type *ty) { function Type (line 669) | static Type *pointers(Token **rest, Token *tok, Type *ty) { function Type (line 681) | static Type *declarator(Token **rest, Token *tok, Type *ty) { function Type (line 708) | static Type *abstract_declarator(Token **rest, Token *tok, Type *ty) { function Type (line 724) | static Type *typename(Token **rest, Token *tok) { function is_end (line 729) | static bool is_end(Token *tok) { function consume_end (line 733) | static bool consume_end(Token **rest, Token *tok) { function Type (line 751) | static Type *enum_specifier(Token **rest, Token *tok) { function Type (line 797) | static Type *typeof_specifier(Token **rest, Token *tok) { function Node (line 813) | static Node *compute_vla_size(Type *ty, Token *tok) { function Node (line 834) | static Node *new_alloca(Node *sz) { function Node (line 844) | static Node *declaration(Token **rest, Token *tok, Type *basety, VarAttr... function Token (line 911) | static Token *skip_excess_element(Token *tok) { function string_initializer (line 922) | static void string_initializer(Token **rest, Token *tok, Initializer *in... function array_designator (line 979) | static void array_designator(Token **rest, Token *tok, Type *ty, int *be... function Member (line 998) | static Member *struct_designator(Token **rest, Token *tok, Type *ty) { function designation (line 1025) | static void designation(Token **rest, Token *tok, Initializer *init) { function count_array_init_elements (line 1066) | static int count_array_init_elements(Token *tok, Type *ty) { function array_initializer1 (line 1094) | static void array_initializer1(Token **rest, Token *tok, Initializer *in... function array_initializer2 (line 1134) | static void array_initializer2(Token **rest, Token *tok, Initializer *in... function struct_initializer1 (line 1156) | static void struct_initializer1(Token **rest, Token *tok, Initializer *i... function struct_initializer2 (line 1184) | static void struct_initializer2(Token **rest, Token *tok, Initializer *i... function union_initializer (line 1204) | static void union_initializer(Token **rest, Token *tok, Initializer *ini... function initializer2 (line 1230) | static void initializer2(Token **rest, Token *tok, Initializer *init) { function Type (line 1280) | static Type *copy_struct_type(Type *ty) { function Initializer (line 1295) | static Initializer *initializer(Token **rest, Token *tok, Type *ty, Type... function Node (line 1316) | static Node *init_desg_expr(InitDesg *desg, Token *tok) { function Node (line 1331) | static Node *create_lvar_init(Initializer *init, Type *ty, InitDesg *des... function Node (line 1376) | static Node *lvar_initializer(Token **rest, Token *tok, Obj *var) { function read_buf (line 1391) | static uint64_t read_buf(char *buf, int sz) { function write_buf (line 1403) | static void write_buf(char *buf, uint64_t val, int sz) { function Relocation (line 1416) | static Relocation * function gvar_initializer (line 1486) | static void gvar_initializer(Token **rest, Token *tok, Obj *var) { function is_typename (line 1497) | static bool is_typename(Token *tok) { function Node (line 1517) | static Node *asm_stmt(Token **rest, Token *tok) { function Node (line 1547) | static Node *stmt(Token **rest, Token *tok) { function Node (line 1763) | static Node *compound_stmt(Token **rest, Token *tok) { function Node (line 1805) | static Node *expr_stmt(Token **rest, Token *tok) { function Node (line 1818) | static Node *expr(Token **rest, Token *tok) { function eval (line 1828) | static int64_t eval(Node *node) { function eval2 (line 1838) | static int64_t eval2(Node *node, char ***label) { function eval_rval (line 1933) | static int64_t eval_rval(Node *node, char ***label) { function is_const_expr (line 1949) | static bool is_const_expr(Node *node) { function const_expr (line 1987) | int64_t const_expr(Token **rest, Token *tok) { function eval_double (line 1992) | static double eval_double(Node *node) { function Node (line 2033) | static Node *to_assign(Node *binary) { function Node (line 2145) | static Node *assign(Token **rest, Token *tok) { function Node (line 2186) | static Node *conditional(Token **rest, Token *tok) { function Node (line 2215) | static Node *logor(Token **rest, Token *tok) { function Node (line 2226) | static Node *logand(Token **rest, Token *tok) { function Node (line 2237) | static Node *bitor(Token **rest, Token *tok) { function Node (line 2248) | static Node *bitxor(Token **rest, Token *tok) { function Node (line 2259) | static Node *bitand(Token **rest, Token *tok) { function Node (line 2270) | static Node *equality(Token **rest, Token *tok) { function Node (line 2292) | static Node *relational(Token **rest, Token *tok) { function Node (line 2324) | static Node *shift(Token **rest, Token *tok) { function Node (line 2350) | static Node *new_add(Node *lhs, Node *rhs, Token *tok) { function Node (line 2380) | static Node *new_sub(Node *lhs, Node *rhs, Token *tok) { function Node (line 2417) | static Node *add(Token **rest, Token *tok) { function Node (line 2439) | static Node *mul(Token **rest, Token *tok) { function Node (line 2466) | static Node *cast(Token **rest, Token *tok) { function Node (line 2489) | static Node *unary(Token **rest, Token *tok) { function struct_members (line 2544) | static void struct_members(Token **rest, Token *tok, Type *ty) { function Token (line 2599) | static Token *attribute_list(Token *tok, Type *ty) { function Type (line 2633) | static Type *struct_union_decl(Token **rest, Token *tok) { function Type (line 2678) | static Type *struct_decl(Token **rest, Token *tok) { function Type (line 2717) | static Type *union_decl(Token **rest, Token *tok) { function Member (line 2738) | static Member *get_struct_member(Type *ty, Token *tok) { function Node (line 2769) | static Node *struct_ref(Node *node, Token *tok) { function Node (line 2790) | static Node *new_inc_dec(Node *node, Token *tok, int addend) { function Node (line 2807) | static Node *postfix(Token **rest, Token *tok) { function Node (line 2875) | static Node *funcall(Token **rest, Token *tok, Node *fn) { function Node (line 2932) | static Node *generic_selection(Token **rest, Token *tok) { function Node (line 2983) | static Node *primary(Token **rest, Token *tok) { function Token (line 3130) | static Token *parse_typedef(Token *tok, Type *basety) { function create_param_lvars (line 3146) | static void create_param_lvars(Type *param) { function resolve_goto_labels (line 3160) | static void resolve_goto_labels(void) { function Obj (line 3176) | static Obj *find_func(char *name) { function mark_live (line 3187) | static void mark_live(Obj *var) { function Token (line 3199) | static Token *function(Token *tok, Type *basety, VarAttr *attr) { function Token (line 3264) | static Token *global_variable(Token *tok, Type *basety, VarAttr *attr) { function is_function (line 3293) | static bool is_function(Token *tok) { function scan_globals (line 3303) | static void scan_globals(void) { function declare_builtin_functions (line 3329) | static void declare_builtin_functions(void) { function Obj (line 3337) | Obj *parse(Token *tok) { FILE: preprocess.c type MacroParam (line 27) | typedef struct MacroParam MacroParam; type MacroParam (line 28) | struct MacroParam { type MacroArg (line 33) | typedef struct MacroArg MacroArg; type MacroArg (line 34) | struct MacroArg { type Token (line 41) | typedef Token *macro_handler_fn(Token *); type Macro (line 43) | typedef struct Macro Macro; type Macro (line 44) | struct Macro { type CondIncl (line 54) | typedef struct CondIncl CondIncl; type CondIncl (line 55) | struct CondIncl { type Hideset (line 62) | typedef struct Hideset Hideset; type Hideset (line 63) | struct Hideset { function is_hash (line 76) | static bool is_hash(Token *tok) { function Token (line 82) | static Token *skip_line(Token *tok) { function Token (line 91) | static Token *copy_token(Token *tok) { function Token (line 98) | static Token *new_eof(Token *tok) { function Hideset (line 105) | static Hideset *new_hideset(char *name) { function Hideset (line 111) | static Hideset *hideset_union(Hideset *hs1, Hideset *hs2) { function hideset_contains (line 121) | static bool hideset_contains(Hideset *hs, char *s, int len) { function Hideset (line 128) | static Hideset *hideset_intersection(Hideset *hs1, Hideset *hs2) { function Token (line 138) | static Token *add_hideset(Token *tok, Hideset *hs) { function Token (line 151) | static Token *append(Token *tok1, Token *tok2) { function Token (line 164) | static Token *skip_cond_incl2(Token *tok) { function Token (line 181) | static Token *skip_cond_incl(Token *tok) { function Token (line 221) | static Token *new_str_token(char *str, Token *tmpl) { function Token (line 229) | static Token *copy_line(Token **rest, Token *tok) { function Token (line 241) | static Token *new_num_token(int val, Token *tmpl) { function Token (line 246) | static Token *read_const_expr(Token **rest, Token *tok) { function eval_const_expr (line 280) | static long eval_const_expr(Token **rest, Token *tok) { function CondIncl (line 310) | static CondIncl *push_cond_incl(Token *tok, bool included) { function Macro (line 320) | static Macro *find_macro(Token *tok) { function Macro (line 326) | static Macro *add_macro(char *name, bool is_objlike, Token *body) { function MacroParam (line 335) | static MacroParam *read_macro_params(Token **rest, Token *tok, char **va... function read_macro_definition (line 368) | static void read_macro_definition(Token **rest, Token *tok) { function MacroArg (line 388) | static MacroArg *read_macro_arg_one(Token **rest, Token *tok, bool read_... function MacroArg (line 419) | static MacroArg * function MacroArg (line 457) | static MacroArg *find_arg(MacroArg *args, Token *tok) { function Token (line 490) | static Token *stringize(Token *hash, Token *arg) { function Token (line 499) | static Token *paste(Token *lhs, Token *rhs) { function has_varargs (line 510) | static bool has_varargs(MacroArg *args) { function Token (line 518) | static Token *subst(Token *tok, MacroArg *args) { function expand_macro (line 630) | static bool expand_macro(Token **rest, Token *tok) { function Token (line 795) | static Token *include_file(Token *tok, char *path, Token *filename_tok) { function read_line_marker (line 820) | static void read_line_marker(Token **rest, Token *tok) { function Token (line 839) | static Token *preprocess2(Token *tok) { function define_macro (line 993) | void define_macro(char *name, char *buf) { function undef_macro (line 998) | void undef_macro(char *name) { function Macro (line 1002) | static Macro *add_builtin(char *name, macro_handler_fn *fn) { function Token (line 1008) | static Token *file_macro(Token *tmpl) { function Token (line 1014) | static Token *line_macro(Token *tmpl) { function Token (line 1022) | static Token *counter_macro(Token *tmpl) { function Token (line 1030) | static Token *timestamp_macro(Token *tmpl) { function Token (line 1041) | static Token *base_file_macro(Token *tmpl) { type tm (line 1046) | struct tm type tm (line 1056) | struct tm function init_macros (line 1060) | void init_macros(void) { type StringKind (line 1115) | typedef enum { function StringKind (line 1119) | static StringKind getStringKind(Token *tok) { function join_adjacent_string_literals (line 1134) | static void join_adjacent_string_literals(Token *tok) { function Token (line 1198) | Token *preprocess(Token *tok) { FILE: strings.c function strarray_push (line 3) | void strarray_push(StringArray *arr, char *s) { FILE: test/alignof.c function main (line 10) | int main() { FILE: test/alloca.c function main (line 5) | int main() { FILE: test/arith.c function main (line 3) | int main() { FILE: test/asm.c function main (line 17) | int main() { FILE: test/atomic.c function incr (line 5) | static int incr(_Atomic int *p) { function add1 (line 14) | static int add1(void *arg) { function add2 (line 21) | static int add2(void *arg) { function add3 (line 28) | static int add3(void *arg) { function add_millions (line 35) | static int add_millions(void) { function main (line 55) | int main() { FILE: test/attribute.c function main (line 4) | int main() { FILE: test/bitfield.c function main (line 9) | int main() { FILE: test/builtin.c function main (line 3) | int main() { FILE: test/cast.c function main (line 3) | int main() { FILE: test/commonsym.c function main (line 11) | int main() { FILE: test/compat.c function funcy_type (line 7) | void funcy_type(int arg[restrict static 3]) {} function main (line 9) | int main() { FILE: test/complit.c type Tree (line 3) | typedef struct Tree { function main (line 19) | int main() { FILE: test/const.c function main (line 3) | int main() { FILE: test/constexpr.c function main (line 6) | int main() { FILE: test/control.c function main (line 7) | int main() { FILE: test/decl.c function main (line 3) | int main() { FILE: test/enum.c function main (line 3) | int main() { FILE: test/extern.c function inline_fn (line 6) | inline int inline_fn(void) { function main (line 10) | int main() { FILE: test/float.c function main (line 3) | int main() { FILE: test/function.c function ret3 (line 3) | int ret3(void) { function add2 (line 8) | int add2(int x, int y) { function sub2 (line 12) | int sub2(int x, int y) { function add6 (line 16) | int add6(int a, int b, int c, int d, int e, int f) { function addx (line 20) | int addx(int *x, int y) { function sub_char (line 24) | int sub_char(char a, char b, char c) { function fib (line 28) | int fib(int x) { function sub_long (line 34) | int sub_long(long a, long b, long c) { function sub_short (line 38) | int sub_short(short a, short b, short c) { function int_to_char (line 45) | char int_to_char(int x) { return x; } function div_long (line 47) | int div_long(long a, long b) { function _Bool (line 51) | _Bool bool_fn_add(_Bool x) { return x + 1; } function _Bool (line 52) | _Bool bool_fn_sub(_Bool x) { return x - 1; } function static_fn (line 54) | static int static_fn(void) { return 3; } function param_decay (line 56) | int param_decay(int x[]) { return x[0]; } function counter (line 58) | int counter() { function ret_none (line 64) | void ret_none() { type __va_elem (line 81) | typedef struct { type __va_elem (line 88) | typedef __va_elem va_list[1]; function add_float3 (line 103) | float add_float3(float x, float y, float z) { function add_double3 (line 107) | double add_double3(double x, double y, double z) { function param_decay2 (line 115) | int param_decay2(int x()) { return x(); } function many_args1 (line 129) | int many_args1(int a, int b, int c, int d, int e, int f, int g, int h) { function many_args2 (line 133) | double many_args2(double a, double b, double c, double d, double e, function many_args3 (line 138) | int many_args3(int a, double b, int c, int d, double e, int f, type Ty4 (line 144) | typedef struct { int a,b; short c; char d; } Ty4; type Ty5 (line 145) | typedef struct { int a; float b; double c; } Ty5; type Ty6 (line 146) | typedef struct { unsigned char a[3]; } Ty6; type Ty7 (line 147) | typedef struct { long a, b, c; } Ty7; function struct_test14 (line 154) | int struct_test14(Ty4 x, int n) { function struct_test15 (line 163) | int struct_test15(Ty5 x, int n) { type Ty20 (line 171) | typedef struct { unsigned char a[10]; } Ty20; type Ty21 (line 172) | typedef struct { unsigned char a[20]; } Ty21; function Ty4 (line 180) | Ty4 struct_test34(void) { function Ty5 (line 184) | Ty5 struct_test35(void) { function Ty6 (line 188) | Ty6 struct_test36(void) { function Ty20 (line 192) | Ty20 struct_test37(void) { function Ty21 (line 196) | Ty21 struct_test38(void) { function inline_fn (line 200) | inline int inline_fn(void) { function to_double (line 204) | double to_double(long double x) { function to_ldouble (line 208) | long double to_ldouble(int x) { function main (line 212) | int main() { FILE: test/generic.c function main (line 3) | int main() { FILE: test/initializer.c type T65 (line 37) | typedef struct { char a, b[]; } T65; function main (line 41) | int main() { FILE: test/line.c function main (line 3) | int main() { FILE: test/literal.c function main (line 3) | int main() { FILE: test/macro.c function ret3 (line 13) | int ret3(void) { return 3; } function dbl (line 14) | int dbl(int x) { return x*x; } function add2 (line 16) | int add2(int x, int y) { function add6 (line 20) | int add6(int a, int b, int c, int d, int e, int f) { function main (line 24) | int main() { FILE: test/offsetof.c type T (line 4) | typedef struct { function main (line 11) | int main() { FILE: test/pointer.c function main (line 3) | int main() { FILE: test/pragma-once.c function main (line 7) | int main() { FILE: test/sizeof.c function main (line 3) | int main() { FILE: test/stdhdr.c function main (line 9) | int main() { FILE: test/string.c function main (line 3) | int main() { FILE: test/struct.c function main (line 3) | int main() { FILE: test/tls.c function thread_main (line 9) | int thread_main(void *unused) { function main (line 25) | int main() { FILE: test/typedef.c type MyInt (line 3) | typedef int MyInt, MyInt2[4]; function main (line 6) | int main() { FILE: test/typeof.c function main (line 3) | int main() { FILE: test/unicode.c type wchar_t (line 7) | typedef int wchar_t; function main (line 11) | int main() { FILE: test/union.c function main (line 3) | int main() { FILE: test/usualconv.c function ret10 (line 3) | static int ret10(void) { return 10; } function main (line 5) | int main() { FILE: test/varargs.c function sum1 (line 4) | int sum1(int x, ...) { function sum2 (line 16) | int sum2(int x, ...) { function fmt (line 31) | void fmt(char *buf, char *fmt, ...) { function main (line 41) | int main() { FILE: test/variable.c function main (line 6) | int main() { FILE: test/vla.c function main (line 3) | int main() { FILE: tokenize.c function error (line 16) | void error(char *fmt, ...) { function verror_at (line 28) | static void verror_at(char *filename, char *input, int line_no, function error_at (line 52) | void error_at(char *loc, char *fmt, ...) { function error_tok (line 64) | void error_tok(Token *tok, char *fmt, ...) { function warn_tok (line 71) | void warn_tok(Token *tok, char *fmt, ...) { function equal (line 79) | bool equal(Token *tok, char *op) { function Token (line 84) | Token *skip(Token *tok, char *op) { function consume (line 90) | bool consume(Token **rest, Token *tok, char *str) { function Token (line 100) | static Token *new_token(TokenKind kind, char *start, char *end) { function startswith (line 114) | static bool startswith(char *p, char *q) { function read_ident (line 120) | static int read_ident(char *start) { function from_hex (line 135) | static int from_hex(char c) { function read_punct (line 144) | static int read_punct(char *p) { function is_keyword (line 158) | static bool is_keyword(Token *tok) { function read_escaped_char (line 180) | static int read_escaped_char(char **new_pos, char *p) { function Token (line 245) | static Token *read_string_literal(char *start, char *quote) { function Token (line 270) | static Token *read_utf16_string_literal(char *start, char *quote) { function Token (line 303) | static Token *read_utf32_string_literal(char *start, char *quote, Type *... function Token (line 321) | static Token *read_char_literal(char *start, char *quote, Type *ty) { function convert_pp_int (line 342) | static bool convert_pp_int(Token *tok) { function convert_pp_number (line 427) | static void convert_pp_number(Token *tok) { function convert_pp_tokens (line 455) | void convert_pp_tokens(Token *tok) { function add_line_numbers (line 465) | static void add_line_numbers(Token *tok) { function Token (line 479) | Token *tokenize_string_literal(Token *tok, Type *basety) { function Token (line 490) | Token *tokenize(File *file) { function File (line 677) | File **get_input_files(void) { function File (line 681) | File *new_file(char *name, int file_no, char *contents) { function canonicalize_newline (line 691) | static void canonicalize_newline(char *p) { function remove_backslash_newline (line 710) | static void remove_backslash_newline(char *p) { function read_universal_char (line 736) | static uint32_t read_universal_char(char *p, int len) { function convert_universal_chars (line 747) | static void convert_universal_chars(char *p) { function Token (line 778) | Token *tokenize_file(char *path) { FILE: type.c function Type (line 20) | static Type *new_type(TypeKind kind, int size, int align) { function is_integer (line 28) | bool is_integer(Type *ty) { function is_flonum (line 34) | bool is_flonum(Type *ty) { function is_numeric (line 39) | bool is_numeric(Type *ty) { function is_compatible (line 43) | bool is_compatible(Type *t1, Type *t2) { function Type (line 90) | Type *copy_type(Type *ty) { function Type (line 97) | Type *pointer_to(Type *base) { function Type (line 104) | Type *func_type(Type *return_ty) { function Type (line 112) | Type *array_of(Type *base, int len) { function Type (line 119) | Type *vla_of(Type *base, Node *len) { function Type (line 126) | Type *enum_type(void) { function Type (line 130) | Type *struct_type(void) { function Type (line 134) | static Type *get_common_type(Type *ty1, Type *ty2) { function usual_arith_conv (line 170) | static void usual_arith_conv(Node **lhs, Node **rhs) { function add_type (line 176) | void add_type(Node *node) { FILE: unicode.c function encode_utf8 (line 4) | int encode_utf8(char *buf, uint32_t c) { function decode_utf8 (line 37) | uint32_t decode_utf8(char **new_pos, char *p) { function in_range (line 70) | static bool in_range(uint32_t *range, uint32_t c) { function is_ident1 (line 87) | bool is_ident1(uint32_t c) { function is_ident2 (line 110) | bool is_ident2(uint32_t c) { function char_width (line 123) | static int char_width(uint32_t c) { function display_width (line 181) | int display_width(char *p, int len) {