VBCC 0.8j released (05-Jun-2006)
Date 9-Jun-2006 17:54:26
Topic: Software News
|vbcc is a highly optimizing portable and retargetable ISO C compiler. It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).|
05-Jun-2006: vbcc 0.8j release.
Changes since last release:
o New: Real bitfield support, including packed bitfields. In the past a bitfield was simply treated as an int.
o New: PPC code generator supports C99 variable-length arrays (like 68k and i386 code generator).
o New: Option -use-commons in PPC code generator makes better use of common symbols. Also use common symbols in small-data and baserel32 modes.
o New: Config files for MorphOS, PowerUp and OS4 (vclib and newlib) include -use-commons option by default now.
o New: Preprocessor supports the __AMIGADATE__ macro.
o New: vclib: Flush output buffers from interactive streams when reading input from another interactive stream. This is not required by ISO-C, but to make vclib more compatible to other clib implementations.
o New: vclib: Small data math libraries for PowerUp, AmigaOS4 and MorphOS.
o New: vasm: Supports include directories, include files, macros, conditional assembly and local symbols. This finally allows to compile the whole vclib on any host platform, without the need for PhxAss.
o New: vasmx86: The 80x86 CPU is supported. First vbcc/AROS versions are being tested, but not ready for the public at the moment.
o New: vlink: Target elf32amiga was splitted into elf32powerup and elf32morphos (OS4 uses standard elf32ppcbe executables). The latter one will make sure that .sdata and .sbss sections are not merged to save space in the object file. MorphOS guarantees to load .sbss sections directly behind .sdata.
o Fixed an internal error when a struct is redeclared with different identifiers.
o Fixed crash when nesting too many #pragma pack() directives.
o #pragma pack() worked incorrectly. It should only enforce the demanded alignment when the natural alignment of the element is higher.
o PPC code generator: Function pointers in small-data mode were incorrectly referenced in the small-data section.
o PPC code generator: Crash when passing a 64-bit argument in an if(0) clause.
o PPC code generator (WarpOS/PowerOpen-ABI): Memory was freed twice when compiling an "if (0 && condition)" line.
o PPC code generator (WarpOS/PowerOpen-ABI): __saveds no longer restores rtoc register.
o PPC code generator: Better small-data support. Makes sure that unitialized data goes into .sbss instead of .sdata.
o M68k code generator: Fixed "target-error: illegal use of register" when switch statement is used with a 64 bit argument.
o M68k code generator: Illegal instruction in full optimization mode, when copying a string pointer.
o M68k code generator: Illegal instruction in mathieee (soft-float) mode.
o Preprocessor: Fixed crash with unexpected ' character following an #include directive.
o vclib: Fixed wrong sign returned by 68000 32-bit modulo operation.
o vasmppc: Maximum offset into a small-data section was erroneously limited to 32767 bytes. Fixed for whole 64k range.
o fd2pragma: Fixed WarpOS inline generation, which produced illegal varargs prototypes like __W3D_RequestModeTags(...).