// Invert the result, if necessary
if (signBit == 1)
- result = (result = 0xFFFFFFFFFFFFFFFFLL) + 1;
+ result = (result ^ 0xFFFFFFFFFFFFFFFFLL) + 1;
return result;
}
// Something really bad happened, abort
return error("reached end of line while parsing expression");
}
- if (*look_ahead == '(')
+ if (*look_ahead == '(')
{
if (parenthesis_level == 0)
{
{
// When PC relative is enforced, check for any symbols that aren't
// EQU'd, in this case it's an illegal mode
- if ((CHECK_OPTS(OPT_PC_RELATIVE)) && (AnEXATTR & (DEFINED | REFERENCED | EQUATED) == (DEFINED | REFERENCED)))
+ if ((CHECK_OPTS(OPT_PC_RELATIVE)) && ((AnEXATTR & (DEFINED | REFERENCED | EQUATED)) == (DEFINED | REFERENCED)))
return error("relocation not allowed when o30 is enabled");
tok++;
if (firstfname == NULL)
firstfname = defname;
- strcpy(fnbuf, firstfname);
+ // It's the size of fnbuf minus 5 because of the possible 4 char suffix
+ // + trailing null (added by fext()).
+ strncpy(fnbuf, firstfname, sizeof(fnbuf) - 5);
fext(fnbuf, (prg_flag ? ".prg" : ".o"), 1);
objfname = fnbuf;
}
#define MAJOR 2 // Major version number
#define MINOR 2 // Minor version number
-#define PATCH 13 // Patch release number
+#define PATCH 14 // Patch release number
#endif // __VERSION_H__