changeset 92:ea2cfebef5d0

Make external symbols remain unresolved in expressions and also flag them in the symbol list
author lost
date Sat, 17 Jan 2009 06:11:40 +0000
parents 718998b673ee
children 34ca1c6e9550
files src/lwasm.c src/symbol.c
diffstat 2 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lwasm.c	Sat Jan 17 05:56:40 2009 +0000
+++ b/src/lwasm.c	Sat Jan 17 06:11:40 2009 +0000
@@ -220,6 +220,11 @@
 		register_error(st -> as, st -> l, 2, "Undefined symbol '%s'", sym);
 		return NULL;
 	}
+	// external reference - can not resolve it
+	if (se -> flags & SYMBOL_EXTERN)
+	{
+		return NULL;
+	}
 	if (st -> as -> outformat != OUTPUT_OBJ || se -> sect == NULL || se -> sect == st -> as -> csect)
 	{
 		// global symbol, intrasegment reference, or not an object target
--- a/src/symbol.c	Sat Jan 17 05:56:40 2009 +0000
+++ b/src/symbol.c	Sat Jan 17 06:11:40 2009 +0000
@@ -200,6 +200,8 @@
 		
 		if (se -> flags & SYMBOL_SET)
 			fputc('S', lf);
+		else if (se -> flags & SYMBOL_EXTERN)
+			fputc('E', lf);
 		else
 			fputc(' ', lf);