Skip to content

Release 5.18

Latest

Choose a tag to compare

@hth313 hth313 released this 17 Jul 23:11
  • Correct a problem with statement expressions in that the last statement inside was incorrectly evaluated twice.

  • Alignment attribute is now properly obeyed on struct members.

  • Attributes on a record declaration is now applied to all variables being defined in record declaration.

  • Variable argument functions with the parameter before the ... passed in register could in some situations clobber the register.

  • Volatile variables in a function that uses setjmp() would not always preserve an assignment to it.

  • An incomplete array at the end of a struct record is now properly initialized.

  • MEGA65: Correct a problem where conversion to a different pointed-to size of a 'far' or 'huge' pointer and using an index expression would result in incorrect index scaling.

  • MEGA65: Correct an internal error (labeling failed) that could occur when pushing a variable (or part of variable) held on the zero page as a pushed parameter.

  • 6502: Fix an internal error cannot hi (_Zp+N),y which could occur in combination with a 16-bit += operator.

  • 6502: Format strings for printf and such no longer perform PETSCII conversion on format fields inside string literals when using the --string-literal option. Characters apart from the format fields are converted as before.

  • 65816: Correct a problem where conversion to a different pointed-to size of a 'far' or 'huge' pointer and using an index expression would result in incorrect index scaling.

  • 65816: Fixed a problem with adjusting a __far pointer with a negative constant index could cause incorrect address calculation.

  • 65816: Testing a 32-bit value against zero would in some situations clobber the value.