Orange C 5.63.1 is released
This version is a bug fix release.
Some of the bugs were found as a result of running CSMITH on the compiler. CSMITH is a random program generator used
to stress compilers.
Overall CSMITH didn't find any parsing errors but there were some problems with taking the address of static const
variables, and other backend problems that it isolated. Also it showed that the expression optimizer could take
a very long time for large expressions.
CMSITH also showed some problems with the way OCC does inlining; large functions that have a lot of inlining going on
could run the compiler out of memory. I fixed that problem but some of the worst offenders can take a while to compile.
That situation seems somewhat rare though.
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: fix problem with crash when a close brace was missing at the end of the file
occ: add support for expressions like a ? : b
occ: clean up the error handling when returning structured values the wrong way
occ: if you took the address of a static const var two or more times it would be replicated in the output file.
occ: if the address of a static const var is used in a global declaration, a bad output file would be generated
occ: the expression optimizer could take an extremely long time for very complex expressions
occ: fix a problem where a an x86 comparison opcode could sometimes be optimized to compare two immediates
occ: fix problems generating too-large constants in assembly language output causing assemble errors
occ: fix problems with csmith output: there is heavy inlining in these files and too many were running the compiler out of memory
occ: fix a problem where a bit operation was attempted to be generated with an inequality
setup: access ORANGEC environment variable off of HKEY_CURRENT_USER instead of HKEY_LOCAL_MACHINE
setup: propagate registry changes before running the IDE from the setup program