From 318787728bd75a13aeaf72bdff2c3b210bdeebe4 Mon Sep 17 00:00:00 2001 From: ketmar Date: Thu, 25 Jun 2020 06:57:46 +0000 Subject: [PATCH] some cosmetix and comments FossilOrigin-Name: 37d867219b7eb6ef1f6ac243e5668f24369c789914b8a852ffa13d0009b99723 --- src/urasm.c | 254 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 123 insertions(+), 131 deletions(-) diff --git a/src/urasm.c b/src/urasm.c index 106f7c2..66ea1e9 100644 --- a/src/urasm.c +++ b/src/urasm.c @@ -496,6 +496,11 @@ static void __attribute__((noreturn)) fatalUrLib (int errcode) { // return !0 to skip current line typedef int (*UrAsmOpFn) (void); +enum { + PI_CONT_LINE = 0, + PI_SKIP_LINE = 1 +}; + typedef struct UrAsmOp { char *name; UrAsmOpFn fn; @@ -909,7 +914,7 @@ static inline void removeSpaces (void) { /* skip leading spaces, and argument (up to, but not including comma or colon) */ /* correctly skip strings */ -/* returns string with skipped argument */ +/* returns string after skipped argument (with trailing spaces skipped) */ static char *skipArg (char *str) { for (;;) { str = strSkipSpaces(str); @@ -938,7 +943,7 @@ static char *skipArg (char *str) { } -/* parse next expression in input string */ +/* evaluate next numeric expression in input string */ /* returns expression value */ static int32_t getExprArg (int *defined, int *addr) { int error = 0; @@ -957,7 +962,7 @@ static int32_t getExprArg (int *defined, int *addr) { } -/* parse next expression in input string */ +/* evaluate next string expression in input string */ /* returns expression value */ static char *getStrExprArg (void) { int error = 0; @@ -985,7 +990,7 @@ static char *getStrExprArg (void) { } -/* parse next expression in input string */ +/* evaluate next numeric expression in input string */ /* there shoild be no other expressions in the string */ /* returns expression value */ static int32_t getOneExprArg (int *defined, int *addr) { @@ -995,7 +1000,25 @@ static int32_t getOneExprArg (int *defined, int *addr) { } -static inline int isStrArg (void) { return (curLine[0] == '"' || curLine[0] == '\''); } +/* is next expression a string literal? */ +static inline int isStrArg (void) { + const char *s = strSkipSpaces(curLine); + return (s[0] == '"' || s[0] == '\''); +} + + +/* check of we reached end of operator */ +static __attribute__((unused)) inline int isOperatorEnd (void) { + const char *s = strSkipSpaces(curLine); + return (s[0] == 0 || s[0] == ':'); +} + + +/* check of we reached end of operator */ +static __attribute__((unused)) inline int isLineEnd (void) { + const char *s = strSkipSpaces(curLine); + return (s[0] == 0); +} /* parse string argument from input string */ @@ -1016,17 +1039,11 @@ static char *getStrArg (int *lenp) { } -static MAYBE_UNUSED char *getOneStrArg (int *lenp) { - char *res = getStrArg(lenp); - if (curLine[0] && curLine[0] != ':') fatal("too many expressions"); - return res; -} - - -static char *getOneIdArgLo () { - static char res[MAX_LINE_SIZE+128], *p; +/* get identifier (and lowercase it) */ +static char *getOneIdArgLo (void) { + static char res[MAX_LINE_SIZE+128]; + char *p; char *a = strSkipSpaces(curLine); - // memset(res, 0, sizeof(res)); if (!a[0]) fatal("identifier expected"); for (p = res; *a && *a != ',' && *a != ':' && *a != '=' && !isSpace(*a); ++a, ++p) *p = *a; @@ -1037,6 +1054,7 @@ static char *getOneIdArgLo () { if (*a) { memmove(curLine, a, strlen(a)+1); if (curLine[0] == ';') curLine[0] = 0; + if (curLine[0]) fatal("extra arguments"); } else { curLine[0] = '\0'; } @@ -1045,10 +1063,11 @@ static char *getOneIdArgLo () { } +/* get label argument */ static char *getLabelArg (int checkdelim) { - static char res[MAX_LINE_SIZE+128], *p; + static char res[MAX_LINE_SIZE+128]; + char *p; char *a = strSkipSpaces(curLine); - // memset(res, 0, sizeof(res)); if (!a[0]) fatal("label expected"); for (p = res; *a && *a != ',' && *a != ':' && *a != '=' && !isSpace(*a); ++a, ++p) *p = *a; @@ -1066,6 +1085,7 @@ static char *getLabelArg (int checkdelim) { } +/* get label argument, and ensure that it is the last one */ static char *getOneLabelArg (void) { char *res = getLabelArg(1); if (curLine[0] && curLine[0] != ':') fatal("too many expressions"); @@ -1073,37 +1093,16 @@ static char *getOneLabelArg (void) { } -/* res == 0: end of expression */ -static int skipComma (void) { +/* returns ',' or 0 */ +static char eatComma (void) { char *a = strSkipSpaces(curLine); - // if (!a[0]) { curLine[0] = '\0'; return 0; } - if (a[0] == ':') { - while (a[0] && (a[0] == ':' || isSpace(a[0]))) ++a; - if (!a[0]) { curLine[0] = '\0'; return 0; } - memmove(curLine, a, strlen(a)+1); - return -1; - } + if (a[0] == ':') return 0; if (a[0] != ',') fatal("invalid expression: ',' expected"); for (++a; *a && isSpace(*a); ++a) {} if (!a[0]) { curLine[0] = '\0'; return 0; } memmove(curLine, a, strlen(a)+1); - return 1; -} - - -// ??? -static void skipInstruction (void) { - char *str = curLine; - // - for (int cnt = 1; cnt > 0; --cnt) { - while (*str && isSpace(*str)) ++str; // skip spaces - while (*str && !isSpace(*str)) ++str; // skip non-spaces - while (*str && isSpace(*str)) ++str; // skip spaces - if (!str[0] || *str != ':') break; - // try again if we have a colon - } - memmove(curLine, str, strlen(str)+1); + return ','; } @@ -1112,19 +1111,24 @@ static void skipInstruction (void) { // static MAYBE_UNUSED void removeSpacesAndColons (void) { char *ep = strSkipSpacesColons(curLine); - // memmove(curLine, ep, strlen(ep)+1); } static void checkExprEnd (void) { char *ep = strSkipSpaces(curLine); - // memmove(curLine, ep, strlen(ep)+1); if (curLine[0] && curLine[0] != ':') fatal("end of expression expected"); } +static void checkOperatorEnd (void) { + char *ep = strSkipSpaces(curLine); + memmove(curLine, ep, strlen(ep)+1); + if (curLine[0]) fatal("end of operator expected"); +} + + /* remove label from curLine */ static void removeLabel (void) { char *ep = curLine; @@ -1176,7 +1180,6 @@ static void processLabel (void) { static char n2[256]; UrLabelInfo *lbl; int noLocAff = 0, doEQU = 0; - // /*!fprintf(stderr, "LINE <%s> (%d)\n", curLine, (curSrcLine ? curSrcLine->lineNo : 0));*/ memset(n2, 0, sizeof(n2)); if (!curLine[0] || isSpace(curLine[0]) || curLine[0] == ':') { removeLabel(); return; } // removeLabel() removes any spaces, etc @@ -1224,10 +1227,8 @@ static void processLabel (void) { if (!doEQU) { if (lbl->type != -1 && lbl->type != 0) fatal("duplicate label %s", lbl->name); } - // int defined = 1, addr = UR_FIXUP_NONE; int32_t res = getOneExprArg(&defined, &addr); - // lbl->type = doEQU; if (addr != UR_FIXUP_NONE) lbl->fixuptype = addr; if (defined) { @@ -1261,7 +1262,6 @@ static __attribute__((sentinel)) SourceLine *findNextInstructionFromList (int *i if (iidx) *iidx = -1; for (SourceLine *cur = curSrcLine; cur; cur = cur->next) { va_list ap; - // //if (!isSpace(cur->line[0])) continue; // fuck labeled strings va_start(ap, iidx); for (int f = 0; ;++f) { @@ -1300,11 +1300,10 @@ static char *optOutputDir = NULL; /////////////////////////////////////////////////////////////////////////////// static void writeFixups (void) { - // + void writeFixupList (FILE *fo, int cnt, const char *lbl, int (*chk)(const FixupItem *)) { if (cnt > 0) { int prevaddr = 0; - // fprintf(fo, "%s:\n", lbl); if (optFixupType == 1) fprintf(fo, " dw %d ; count\n", cnt); for (const FixupItem *fx = fixlisthead; fx != NULL; fx = fx->next) { @@ -1318,7 +1317,7 @@ static void writeFixups (void) { if (optFixupType == 2 || optFixupType == 3) fprintf(fo, " dw 0 ; end marker\n"); } } - // + if (optFixupType == 0) { char *fname = strprintf("%s/%s", optOutputDir, "zfixuptable.txt"); FILE *fo = fopen(fname, "w"); @@ -1335,7 +1334,6 @@ static void writeFixups (void) { char *fname = strprintf("%s/%s", optOutputDir, "zfixuptable.zas"); FILE *fo = fopen(fname, "w"); int cntw = 0, cntwl = 0, cntwh = 0, cntbl = 0, cntbh = 0; - // free(fname); if (fo == NULL) fatal("can't write fixup file"); for (const FixupItem *fx = fixlisthead; fx != NULL; fx = fx->next) { @@ -1345,27 +1343,21 @@ static void writeFixups (void) { case UR_FIXUP_HIBYTE: if (fx->size == 2) ++cntwh; else ++cntbh; break; } } - // writeFixupList(fo, cntw, "fixup_table_w", lambda(int, (const FixupItem *fx) { return (fx->fixuptype == UR_FIXUP_WORD); })); - // writeFixupList(fo, cntwl, "fixup_table_wl", lambda(int, (const FixupItem *fx) { return (fx->fixuptype == UR_FIXUP_LOBYTE && fx->size == 2); })); - // writeFixupList(fo, cntwh, "fixup_table_wh", lambda(int, (const FixupItem *fx) { return (fx->fixuptype == UR_FIXUP_HIBYTE && fx->size == 2); })); - // writeFixupList(fo, cntbl, "fixup_table_bl", lambda(int, (const FixupItem *fx) { return (fx->fixuptype == UR_FIXUP_LOBYTE && fx->size == 1); })); - // writeFixupList(fo, cntbh, "fixup_table_bh", lambda(int, (const FixupItem *fx) { return (fx->fixuptype == UR_FIXUP_HIBYTE && fx->size == 1); })); - // fclose(fo); } } @@ -2096,7 +2088,7 @@ static void processPrintf (FILE *fo, const char *fmt) { if (width > 256) width = 256; ftype = *currfmt++; if (!ftype) break; /* oops */ - if (!skipComma()) fatal("out of arguments for string format"); + if (!eatComma()) fatal("out of arguments for string format"); switch (ftype) { case 's': /* string */ stlen = 0; @@ -2189,7 +2181,7 @@ static int piERROR (void) { processPrintf(stdout, res); fputc('\n', stdout); fatal("user error abort"); - return 1; + return PI_SKIP_LINE; } @@ -2203,9 +2195,10 @@ static int piPrintfCommon (int passNo) { processPrintf(stdout, res); fputc('\n', stdout); } - return 1; + return PI_SKIP_LINE; } + static int piDISPLAYX (int passNo, int asHex) { for (;;) { if (isStrArg()) { @@ -2222,9 +2215,9 @@ static int piDISPLAYX (int passNo, int asHex) { else printf("%d", v); } } - if (!skipComma()) break; + if (!eatComma()) break; } - return 0; + return PI_SKIP_LINE; } @@ -2256,7 +2249,7 @@ static int piORG (void) { ent = res; if (!wasClr && res > 0) clrAddr = res-1; } - return 0; + return PI_CONT_LINE; } @@ -2268,7 +2261,7 @@ static int piDISP (void) { if (res < 0 || res > 65535) fatal("invalid DISP operand value: %d", res); //printf("DISP=%d\n", res); disp = res; - return 0; + return PI_CONT_LINE; } @@ -2276,7 +2269,7 @@ static int piENDDISP (void) { if (inTapeBlock) fatal("sorry, no ENDDISPs in TAPEDATA allowed"); checkExprEnd(); disp = pc; - return 0; + return PI_CONT_LINE; } @@ -2287,7 +2280,7 @@ static int piENT (void) { //if (!defined) fatal("sorry, ENT operand value must be known here"); if (res < 0 || res > 65535) fatal("invalid ENT operand value: %d", res); ent = res; - return 0; + return PI_CONT_LINE; } @@ -2299,7 +2292,7 @@ static int piCLR (void) { if (res < 0 || res > 65535) fatal("invalid CLR operand value: %d", res); clrAddr = res; wasClr = 1; - return 0; + return PI_CONT_LINE; } @@ -2310,14 +2303,14 @@ static int piRESERVE (void) { if (!defined) fatal("sorry, RESERVE operand values must be known here"); if (res < 0 || res > 65535) fatal("invalid RESERVE operand value: %d", res); start = res; - if (!skipComma()) fatal("RESERVE needs 2 args"); + if (!eatComma()) fatal("RESERVE needs 2 args"); res = getOneExprArg(&defined, NULL); if (!defined) fatal("sorry, RESERVE operand values must be known here"); if (res < 0 || res > 65535) fatal("invalid RESERVE operand value: %d", res); for (; len > 0; --len, start = (start+1)&0xffff) memresv[start] = 1; */ fatal("RESERVE: not yet!"); - return 0; + return PI_CONT_LINE; } @@ -2336,7 +2329,7 @@ static int piALIGN (void) { pc += res; disp = pc; } - return 0; + return PI_CONT_LINE; } @@ -2351,7 +2344,7 @@ static int piDISPALIGN (void) { disp *= res; disp += res; } - return 0; + return PI_CONT_LINE; } @@ -2367,7 +2360,7 @@ static int piDEFINCR (void) { // if (!defined) fatal("DEFINCR: increment must be defined"); defIncr = cnt; - return 0; + return PI_CONT_LINE; } @@ -2394,8 +2387,24 @@ static int piDEFBW (int isWord) { if (isWord) { if (res < -32768 || res > 65535) fatal("invalid operand value: %d", res); if (res < 0) res += 65536; - if (fixuptype != UR_FIXUP_NONE) urasm_fixup_operand(NULL, pc, disp, fixuptype, 2); - if (isWord == 1) emitWord(res); else emitRWord(res); + if (isWord == 1) { + if (fixuptype != UR_FIXUP_NONE) urasm_fixup_operand(NULL, pc, disp, fixuptype, 2); + emitWord(res); + } else { + /* reversed word */ + switch (fixuptype) { + case UR_FIXUP_WORD: /* swapped bytes */ + urasm_fixup_operand(NULL, pc, disp, UR_FIXUP_HIBYTE, 1); + urasm_fixup_operand(NULL, pc, disp+1, UR_FIXUP_LOBYTE, 1); + break; + case UR_FIXUP_LOBYTE: + case UR_FIXUP_HIBYTE: + warningMsg("non-word fixup for reversed word; wtf?!"); + break; + default: break; + } + emitRWord(res); + } } else { if (res < -128 || res > 255) fatal("invalid operand value: %d", res); if (fixuptype != UR_FIXUP_NONE) { @@ -2406,9 +2415,9 @@ static int piDEFBW (int isWord) { emitByte(res); } } - if (!skipComma()) break; + if (!eatComma()) break; } - return 0; + return PI_CONT_LINE; } static int piDEFB (void) { return piDEFBW(0); } @@ -2425,7 +2434,7 @@ static int piDEFS (void) { if (pass > 0 && !defined) fatal("undefined operand"); if (res < 1 || res > 65535) fatal("invalid number of repetitions: %d", res); if (*curLine && curLine[0] == ',') { - skipComma(); + (void)eatComma(); bt = getExprArg(&defined, NULL); if (pass > 0 && !defined) fatal("undefined operand"); bt += defIncr; @@ -2441,9 +2450,9 @@ static int piDEFS (void) { } else { pc += res; disp += res; } - if (!skipComma()) break; + if (!eatComma()) break; } - return 0; + return PI_CONT_LINE; } @@ -2477,9 +2486,9 @@ static int piDEFSTR (int type) { if (v < 0) v += 256; emitByte(v); } - if (!skipComma()) break; + if (!eatComma()) break; } - return 0; + return PI_CONT_LINE; } @@ -2518,8 +2527,7 @@ static int piINCBIN (void) { // maxlen if (curLine[0] == ',') { int defined = 1; - // - skipComma(); + (void)eatComma(); maxlen = getOneExprArg(&defined, NULL); if (!defined) fatal("INCBIN: undefined maxlen"); if (maxlen < 1) return 1; // nothing to do @@ -2541,7 +2549,7 @@ static int piINCBIN (void) { emitByte(bt); } fclose(fl); - return 1; + return PI_SKIP_LINE; } @@ -2569,7 +2577,7 @@ static int piINCLUDE (void) { if (!fn[0]) fatal("INCLUDE: empty file name"); // if (asmTextInclude(fn, system) != 0) fatal("INCLUDE: some shit happens!"); - return 1; + return PI_SKIP_LINE; } @@ -2580,11 +2588,10 @@ static int piENDMODULE (void) { if (!curModule) fatal("ENDMODULE without MODULE"); if (curLine[0]) { char *mn = getOneLabelArg(); - // if (strcmp(mn, curModule->name)) fatal("invalid module name in ENDMODULE: %s", mn); } curModule = NULL; - return 0; + return PI_SKIP_LINE; } @@ -2603,23 +2610,22 @@ static int piMODULE (void) { if (mi->seen) { if (strcmp(mi->fname, curSrcLine->fname)) fatal("duplicate module definition; previous was in %s", mi->fname); /* skip module */ - nextSrcLine(); // skip ourself + nextSrcLine(); /* skip "MODULE" line */ if (!setCurSrcLine(findNextInstructionFromList(&inum, "MODULE", "ENDMODULE", NULL))) { setCurSrcLine(ol); fatal("no ENDMODULE"); } if (inum == 0) fatal("no nested modules allowed"); curModule = mi; - skipInstruction(); - piENDMODULE(); - return 0; + //skipInstruction(); //k8:wtf?! + return piENDMODULE(); } } else { mi = moduleAdd(mn, curSrcLine->fname); } mi->seen = 1; curModule = mi; - return 0; + return PI_SKIP_LINE; } @@ -2633,7 +2639,7 @@ static int piMODEL (void) { else if (strcmp(mn, "z80next") == 0) urasm_allow_zxnext = 1; else if (strcmp(mn, "zxnext") == 0) urasm_allow_zxnext = 1; else fatal("invalid model name: %s", mn); - return 0; + return PI_SKIP_LINE; } @@ -2642,8 +2648,8 @@ static int piMODEL (void) { // static int piEDUP (void) { fatal("EDUP without DUP"); - checkExprEnd(); - return 1; + checkOperatorEnd(); + return PI_SKIP_LINE; } @@ -2682,7 +2688,7 @@ static int piDUP (void) { setCurSrcLine(stline); while (curSrcLine != eline) processCurrentLine(); } - return 1; + return PI_SKIP_LINE; } @@ -2747,8 +2753,8 @@ static int ifSkipToEndIfOrElse (int wholeBody) { static int piENDIF (void) { /*!fprintf(stderr, "ENDIF(%d): LINE <%s> (%d)\n", ifCount, curLine, (curSrcLine ? curSrcLine->lineNo : 0));*/ if (--ifCount < 0) fatal("ENDIF without IF"); - checkExprEnd(); - return 1; + checkOperatorEnd(); + return PI_SKIP_LINE; } @@ -2756,14 +2762,14 @@ static int piELSE (void) { if (--ifCount < 0) fatal("ELSE without IF"); nextSrcLine(); // skip ELSE ifSkipToEndIfOrElse(1); - return 1; + return PI_SKIP_LINE; } static int piELSEIF (void) { if (--ifCount < 0) fatal("ELSEIF without IF"); nextSrcLine(); // skip ELSEIF ifSkipToEndIfOrElse(1); - return 1; + return PI_SKIP_LINE; } @@ -2771,7 +2777,7 @@ static int piELSEIFX (void) { if (--ifCount < 0) fatal("ELSEIFX without IF"); nextSrcLine(); // skip ELSEIFX ifSkipToEndIfOrElse(1); - return 1; + return PI_SKIP_LINE; } @@ -2789,7 +2795,7 @@ static int piIFAll (int isIfX) { if (cond) { // ok, do it until ELSE/ELSEIF/ENDIF ++ifCount; - return 1; + return PI_SKIP_LINE; } for (;;) { int r; @@ -2819,7 +2825,7 @@ static int piIFAll (int isIfX) { } if (cond) { ++ifCount; break; } // condition is true } - return 1; + return PI_SKIP_LINE; } @@ -3121,13 +3127,6 @@ static int piMACRO (void) { mc->argc = argc; for (int f = 0; f < argc; ++f) { mc->argdefaults[f] = argdefaults[f]; mc->argnames[f] = argnames[f]; } // - /* - if ((tline = calloc(1, sizeof(*tline))) == NULL) fatal("out of memory"); - tline->next = stline->next; - tline->line = strdup(stline->line); - tline->fname = strdup(stline->fname); - tline->lineNo = stline->lineNo; - */ eline->next = NULL; mc->lines = stline->next; stline->next = curSrcLine; @@ -3136,14 +3135,13 @@ static int piMACRO (void) { mc->next = maclist; maclist = mc; setCurSrcLine(stline); - //fatal("sorry, no MACRO yet"); - return 1; + return PI_SKIP_LINE; } static int piENDM (void) { fatal("ENDM without MACRO"); - return 1; + return PI_SKIP_LINE; } @@ -3154,12 +3152,10 @@ static int optWTChanged = 0; static void piTapParseLoaderName (void) { - if (skipComma()) { + if (eatComma()) { int len; - char *fn; - // if (!isStrArg()) fatal("loader name expected"); - fn = getStrArg(&len); + char *fn = getStrArg(&len); if (len > 10) fatal("loader name too long"); memset(tapeLoaderName, ' ', 10); for (int f = 0; f < len; ++f) tapeLoaderName[f] = fn[f]; @@ -3172,16 +3168,15 @@ static int piMATHMODE (void) { if (strcasecmp(name, "OLD") == 0) urasm_use_old_priorities = 1; else if (strcasecmp(name, "NEW") == 0) urasm_use_old_priorities = 0; else fatal("invalid math mode; NEW or OLD expected"); - return 1; // skip current line + return PI_SKIP_LINE; } static int piDEFFMT (void) { char *name; - // + if (isStrArg()) { int len = 0; - // name = getStrArg(&len); } else { name = getLabelArg(1); @@ -3194,40 +3189,40 @@ static int piDEFFMT (void) { if (!strcasecmp(name, "SNA") || !strcasecmp(name, "RUNSNA") || !strcasecmp(name, "SNARUN")) { optWriteType = 's'; if (curLine[0]) fatal("too many expressions"); - return 1; + return PI_SKIP_LINE; } if (!strcasecmp(name, "TAP") || !strcasecmp(name, "TAPE")) { optWriteType = 't'; piTapParseLoaderName(); - return 1; + return PI_SKIP_LINE; } if (!strcasecmp(name, "RUNTAP") || !strcasecmp(name, "RUNTAPE") || !strcasecmp(name, "TAPERUN")) { optRunTape = 1; optWriteType = 't'; piTapParseLoaderName(); - return 1; + return PI_SKIP_LINE; } if (!strcasecmp(name, "BIN") || !strcasecmp(name, "RAW")) { optWriteType = 'r'; if (curLine[0]) fatal("too many expressions"); - return 1; + return PI_SKIP_LINE; } if (!strcasecmp(name, "DMB") || !strcasecmp(name, "RUNDMB") || !strcasecmp(name, "DMBRUN")) { optRunDMB = (name[3] != 0); optWriteType = 'd'; if (curLine[0]) fatal("too many expressions"); - return 1; + return PI_SKIP_LINE; } if (!strcasecmp(name, "NONE") || !strcasecmp(name, "NOTHING")) { optWriteType = 'n'; if (curLine[0]) fatal("too many expressions"); - return 1; + return PI_SKIP_LINE; } if (!strcasecmp(name, "SCL") || !strcasecmp(name, "RUNSCL") || !strcasecmp(name, "SCLRUN")) { optWriteType = 'S'; optRunSCL = (name[3] != 0); piTapParseLoaderName(); - return 1; + return PI_SKIP_LINE; } fatal("invalid default output type: %s", name); } @@ -3453,7 +3448,6 @@ static const char *fnSameSeg (urasm_exprval_t *res, const char *expr, uint16_t a static const char *fnAlign (urasm_exprval_t *res, const char *expr, uint16_t addr, int donteval, int *defined, int *error) { urasm_exprval_t v0, v1; - // urasm_exprval_init(&v0); urasm_exprval_init(&v1); expr = urasm_expr_ex(&v0, expr, addr, &donteval, defined, error); @@ -3476,7 +3470,6 @@ static const char *fnAlign (urasm_exprval_t *res, const char *expr, uint16_t add static const char *fnLow (urasm_exprval_t *res, const char *expr, uint16_t addr, int donteval, int *defined, int *error) { const char *ee = expr; - // expr = urasm_expr_ex(res, expr, addr, &donteval, defined, error); FN_CHECK_END; if (!donteval) { @@ -3492,7 +3485,6 @@ static const char *fnLow (urasm_exprval_t *res, const char *expr, uint16_t addr, static const char *fnHigh (urasm_exprval_t *res, const char *expr, uint16_t addr, int donteval, int *defined, int *error) { const char *ee = expr; - // expr = urasm_expr_ex(res, expr, addr, &donteval, defined, error); FN_CHECK_END; if (!donteval) { -- 2.11.4.GIT