From: Peter Johnson Date: Mon, 23 Apr 2007 04:53:01 +0000 (-0000) Subject: Call yasm_symtab_parser_finalize() from parser so caller doesn't need to X-Git-Tag: v0.6.1~15^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7a2583bc7f46e85e0c55da770a10c5cf268316ab;p=yasm Call yasm_symtab_parser_finalize() from parser so caller doesn't need to figure out itself if undef should be changed into extern or not. svn path=/trunk/yasm/; revision=1828 --- diff --git a/frontends/yasm/yasm.c b/frontends/yasm/yasm.c index 519d4ef6..2aaa90e1 100644 --- a/frontends/yasm/yasm.c +++ b/frontends/yasm/yasm.c @@ -449,13 +449,6 @@ do_assemble(FILE *in) check_errors(errwarns, object, linemap); - /* Check for undefined symbols */ - yasm_symtab_parser_finalize(object->symtab, - strcmp(cur_parser_module->keyword, "gas")==0 || - strcmp(cur_parser_module->keyword, "gnu")==0, - errwarns); - check_errors(errwarns, object, linemap); - /* Finalize parse */ yasm_object_finalize(object, errwarns); check_errors(errwarns, object, linemap); diff --git a/modules/parsers/gas/gas-parser.c b/modules/parsers/gas/gas-parser.c index 12b786a1..e2515341 100644 --- a/modules/parsers/gas/gas-parser.c +++ b/modules/parsers/gas/gas-parser.c @@ -101,6 +101,9 @@ gas_parser_do_parse(yasm_object *object, yasm_preproc *pp, FILE *f, if (parser_gas.dir_file) yasm_xfree(parser_gas.dir_file); + + /* Convert all undefined symbols into extern symbols */ + yasm_symtab_parser_finalize(object->symtab, 1, errwarns); } /* Define valid preprocessors to use with this parser */ diff --git a/modules/parsers/nasm/nasm-parser.c b/modules/parsers/nasm/nasm-parser.c index 0a0f7729..786b6d50 100644 --- a/modules/parsers/nasm/nasm-parser.c +++ b/modules/parsers/nasm/nasm-parser.c @@ -73,6 +73,9 @@ nasm_parser_do_parse(yasm_object *object, yasm_preproc *pp, FILE *f, /* Free locallabel base if necessary */ if (parser_nasm.locallabel_base) yasm_xfree(parser_nasm.locallabel_base); + + /* Check for undefined symbols */ + yasm_symtab_parser_finalize(object->symtab, 0, errwarns); } /* Define valid preprocessors to use with this parser */