int org68k_active = 0; // .org switch for 68k (only with RAW output format)
uint32_t org68k_address; // .org for 68k
int correctMathRules; // 1, use C operator precedence in expressions
+uint32_t used_architectures; // Bitmask that records exactly which architectures were used during assembly
//
// Convert a string to uppercase
regcheck = reg68check; // Idem
regaccept = reg68accept; // Idem
correctMathRules = 0; // respect operator precedence
+ used_architectures = 0; // Initialise used architectures bitfield
// Initialize modules
InitSymbolTable(); // Symbol table
InitTokenizer(); // Tokenizer
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;
}