diff lwasm/main.c @ 385:cf8c92d70eb1

Various bugfixes
author lost@starbug
date Sun, 16 May 2010 11:50:00 -0600
parents 38b50ce6967a
children a741d2e4869f
line wrap: on
line diff
--- a/lwasm/main.c	Sat May 15 20:46:04 2010 -0600
+++ b/lwasm/main.c	Sun May 16 11:50:00 2010 -0600
@@ -184,8 +184,9 @@
 {
 	char *passname;
 	void (*fn)(asmstate_t *as);
+	int fordep;
 } passlist[] = {
-	{ "parse", do_pass1 },
+	{ "parse", do_pass1, 1 },
 	{ "symcheck", do_pass2 },
 	{ "resolve1", do_pass3 },
 	{ "resolve2", do_pass4 },
@@ -225,6 +226,8 @@
 
 	for (passnum = 0; passlist[passnum].fn; passnum++)
 	{
+		if ((asmstate.flags & FLAG_DEPEND) && passlist[passnum].fordep == 0)
+			continue;
 		debug_message(&asmstate, 50, "Doing pass %d (%s)\n", passnum, passlist[passnum].passname);
 		(passlist[passnum].fn)(&asmstate);
 		debug_message(&asmstate, 50, "After pass %d (%s)\n", passnum, passlist[passnum].passname);