Loading scripts/genksyms/genksyms.c +6 −4 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ static enum symbol_type map_to_ns(enum symbol_type t) return t; } struct symbol *find_symbol(const char *name, enum symbol_type ns) struct symbol *find_symbol(const char *name, enum symbol_type ns, int exact) { unsigned long h = crc32(name) % HASH_BUCKETS; struct symbol *sym; Loading @@ -167,6 +167,8 @@ struct symbol *find_symbol(const char *name, enum symbol_type ns) sym->is_declared) break; if (exact && sym && sym->type != ns) return NULL; return sym; } Loading Loading @@ -511,7 +513,7 @@ static unsigned long expand_and_crc_sym(struct symbol *sym, unsigned long crc) break; case SYM_TYPEDEF: subsym = find_symbol(cur->string, cur->tag); subsym = find_symbol(cur->string, cur->tag, 0); /* FIXME: Bad reference files can segfault here. */ if (subsym->expansion_trail) { if (flag_dump_defs) Loading @@ -528,7 +530,7 @@ static unsigned long expand_and_crc_sym(struct symbol *sym, unsigned long crc) case SYM_STRUCT: case SYM_UNION: case SYM_ENUM: subsym = find_symbol(cur->string, cur->tag); subsym = find_symbol(cur->string, cur->tag, 0); if (!subsym) { struct string_list *n; Loading Loading @@ -582,7 +584,7 @@ void export_symbol(const char *name) { struct symbol *sym; sym = find_symbol(name, SYM_NORMAL); sym = find_symbol(name, SYM_NORMAL, 0); if (!sym) error_with_pos("export undefined symbol %s", name); else { Loading scripts/genksyms/genksyms.h +1 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ typedef struct string_list **yystype; extern int cur_line; extern char *cur_filename; struct symbol *find_symbol(const char *name, enum symbol_type ns); struct symbol *find_symbol(const char *name, enum symbol_type ns, int exact); struct symbol *add_symbol(const char *name, enum symbol_type type, struct string_list *defn, int is_extern); void export_symbol(const char *); Loading scripts/genksyms/lex.c_shipped +1 −2 Original line number Diff line number Diff line Loading @@ -2347,8 +2347,7 @@ repeat: } if (!suppress_type_lookup) { struct symbol *sym = find_symbol(yytext, SYM_TYPEDEF); if (sym && sym->type == SYM_TYPEDEF) if (find_symbol(yytext, SYM_TYPEDEF, 1)) token = TYPE; } } Loading scripts/genksyms/lex.l +1 −2 Original line number Diff line number Diff line Loading @@ -193,8 +193,7 @@ repeat: } if (!suppress_type_lookup) { struct symbol *sym = find_symbol(yytext, SYM_TYPEDEF); if (sym && sym->type == SYM_TYPEDEF) if (find_symbol(yytext, SYM_TYPEDEF, 1)) token = TYPE; } } Loading Loading
scripts/genksyms/genksyms.c +6 −4 Original line number Diff line number Diff line Loading @@ -156,7 +156,7 @@ static enum symbol_type map_to_ns(enum symbol_type t) return t; } struct symbol *find_symbol(const char *name, enum symbol_type ns) struct symbol *find_symbol(const char *name, enum symbol_type ns, int exact) { unsigned long h = crc32(name) % HASH_BUCKETS; struct symbol *sym; Loading @@ -167,6 +167,8 @@ struct symbol *find_symbol(const char *name, enum symbol_type ns) sym->is_declared) break; if (exact && sym && sym->type != ns) return NULL; return sym; } Loading Loading @@ -511,7 +513,7 @@ static unsigned long expand_and_crc_sym(struct symbol *sym, unsigned long crc) break; case SYM_TYPEDEF: subsym = find_symbol(cur->string, cur->tag); subsym = find_symbol(cur->string, cur->tag, 0); /* FIXME: Bad reference files can segfault here. */ if (subsym->expansion_trail) { if (flag_dump_defs) Loading @@ -528,7 +530,7 @@ static unsigned long expand_and_crc_sym(struct symbol *sym, unsigned long crc) case SYM_STRUCT: case SYM_UNION: case SYM_ENUM: subsym = find_symbol(cur->string, cur->tag); subsym = find_symbol(cur->string, cur->tag, 0); if (!subsym) { struct string_list *n; Loading Loading @@ -582,7 +584,7 @@ void export_symbol(const char *name) { struct symbol *sym; sym = find_symbol(name, SYM_NORMAL); sym = find_symbol(name, SYM_NORMAL, 0); if (!sym) error_with_pos("export undefined symbol %s", name); else { Loading
scripts/genksyms/genksyms.h +1 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ typedef struct string_list **yystype; extern int cur_line; extern char *cur_filename; struct symbol *find_symbol(const char *name, enum symbol_type ns); struct symbol *find_symbol(const char *name, enum symbol_type ns, int exact); struct symbol *add_symbol(const char *name, enum symbol_type type, struct string_list *defn, int is_extern); void export_symbol(const char *); Loading
scripts/genksyms/lex.c_shipped +1 −2 Original line number Diff line number Diff line Loading @@ -2347,8 +2347,7 @@ repeat: } if (!suppress_type_lookup) { struct symbol *sym = find_symbol(yytext, SYM_TYPEDEF); if (sym && sym->type == SYM_TYPEDEF) if (find_symbol(yytext, SYM_TYPEDEF, 1)) token = TYPE; } } Loading
scripts/genksyms/lex.l +1 −2 Original line number Diff line number Diff line Loading @@ -193,8 +193,7 @@ repeat: } if (!suppress_type_lookup) { struct symbol *sym = find_symbol(yytext, SYM_TYPEDEF); if (sym && sym->type == SYM_TYPEDEF) if (find_symbol(yytext, SYM_TYPEDEF, 1)) token = TYPE; } } Loading