]> granicus.if.org Git - yasm/commitdiff
Call yasm_symtab_parser_finalize() from parser so caller doesn't need to
authorPeter Johnson <peter@tortall.net>
Mon, 23 Apr 2007 04:53:01 +0000 (04:53 -0000)
committerPeter Johnson <peter@tortall.net>
Mon, 23 Apr 2007 04:53:01 +0000 (04:53 -0000)
figure out itself if undef should be changed into extern or not.

svn path=/trunk/yasm/; revision=1828

frontends/yasm/yasm.c
modules/parsers/gas/gas-parser.c
modules/parsers/nasm/nasm-parser.c

index 519d4ef68f4667721af5d83ed721600de3e18a5d..2aaa90e13d834ac681d22ef695ba9f2e58d6058e 100644 (file)
@@ -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);
index 12b786a16bcf0739da567fea22101c19742e15b1..e251534106d7bb44cbea48d439376a1348bc9503 100644 (file)
@@ -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 */
index 0a0f7729584a57ac9e54a55c5b764ced348294ba..786b6d50b35aa0639aaa41076e8489427c0811a7 100644 (file)
@@ -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 */