Mercurial > hg-old > index.cgi
diff lwasm/symbol.c @ 389:fbb7bfed8076
Added in structure support and fixed up some warts in the listing code (by adding more warts)
author | lost@l-w.ca |
---|---|
date | Wed, 14 Jul 2010 22:33:55 -0600 |
parents | d99322ef6f21 |
children | 027d7fbcdcfc |
line wrap: on
line diff
--- a/lwasm/symbol.c Wed Jul 14 20:17:57 2010 -0600 +++ b/lwasm/symbol.c Wed Jul 14 22:33:55 2010 -0600 @@ -38,16 +38,19 @@ int version = -1; char *cp; - if (*sym < 0x80 && !strchr(SSYMCHARS, *sym)) + if (!(flags & symbol_flag_nocheck)) { - lwasm_register_error(as, cl, "Bad symbol (%s)", sym); - return NULL; - } + if (*sym < 0x80 && !strchr(SSYMCHARS, *sym)) + { + lwasm_register_error(as, cl, "Bad symbol (%s)", sym); + return NULL; + } - if ((*sym == '$' || *sym == '@') && (sym[1] >= '0' && sym[1] <= '9')) - { - lwasm_register_error(as, cl, "Bad symbol (%s)", sym); - return NULL; + if ((*sym == '$' || *sym == '@') && (sym[1] >= '0' && sym[1] <= '9')) + { + lwasm_register_error(as, cl, "Bad symbol (%s)", sym); + return NULL; + } } for (cp = sym; *cp; cp++) @@ -58,7 +61,7 @@ islocal = 1; // bad symbol - if (*cp < 0x80 && !strchr(SYMCHARS, *cp)) + if (!(flags & symbol_flag_nocheck) && *cp < 0x80 && !strchr(SYMCHARS, *cp)) { lwasm_register_error(as, cl, "Bad symbol (%s)", sym); return NULL; @@ -84,6 +87,7 @@ break; } } + if (se) { // multiply defined symbol