Orange C 5.50.1 is released

This release adds the clang libcxx library as the released STL, for C++11 support.

This release also fixes various bugs and allows compiling of TCC

In recent versions, the name mangling for C++ has changed, and the object library file format has changed. Please completely rebuild your projects.

Some of the changes are as follows

  • occ: many changes to templates et.al. made to fix bugs while compiling libcxx
  • occ: fix problem with control statements: an unbracketed statement right after the control statement could not be preceded by a label (change to compile TCC)
  • occ: generated copy constructors would not copy members that were member pointers
  • occ: initialization of an auto array did not result in unused chars being zeroed
  • occ: cast operators located in a base class did not get the correct THIS pointer when called on a derived object
  • occ: optimizing out the 'default' clause of a switch statement can result in a crash during inlining
  • occ: a template function that starts with a switch crashes compiler
  • orc: add switch to specify default language settings
  • clibs: add WIN32 support for TCC
  • clibs: if a memory block was freed twice, a subsequent malloc might enter an infinite loop