New Features & Bug Fixes
A list of bug fixes for the compiler and linker can be found in the Symbian_x86_BuildTools_Notes.txt file located in the <Carbide_Install_Dir>\x86Build\Release_Notes directory. The latest build information is always available on the Symbian Foundation Wiki under WINSCW (build version information).
This reference has new and updated topics:
3.2.5 Build 489
- Corrected an issue that prevented compiling of files with different case handling across different OS systems.
3.2.5 Build 488
- Fixed an issue where a const exception is thrown but it was not getting caught by a non const catch block.
- Fixed an internal compiler error in floating point code generation during optimization.
3.2.5 Build 487
- IMPORTANT WINSCW COMPILER change - the WINSCW compiler 3.2.5 build 487 provides new name mangling to support critical exception handling. Without this change an exception can cause a program or system crash. For more information visit the WINSCW wiki page.
- Made "-def_for_structclass on" the default.
3.2.5 Build 486
- Fixed a C file compile error when assigning a DLL import function name to a function pointer.
3.2.5 Build 485
- Fixed a codegen bug when a bit field object with post-decrement is used as a while loop counter.
3.2.5 Build 482
- Fixed a bad assert flagging false an internal compiler error.
3.2.5 Build 481
- Default constructor initialized to zero to comply with C++ standard §5.3.4.15.
- Fixed an issue for bad relocation type in reference to the destructor of an imported class from a DLL.
- Reverted bugfix on the issue around forward declaration in class/struct conflicting with definition, we added a new command line switch -def_for_structclass on, and #pragma def_for_structclass for the picking up the definition instead of forward declaration.
Previous releases
- See pragma gcc_extensions for GCC improvements
- See pragma c99 for C99 improvements
- C++ improvements include:
- Forward Declarations of Arrays of Incomplete Type now supported
- Vendor Independent C++ ABI support for specific compiler target
- C++ template improvements include:
- Instantiating a Template now supports the explicit instantiation of non-template members
- Better Template Conformance support for address of template-id rules
- The pragma defer_defarg_parsing supports deferred parsing of member functions by default
- “Multibyte and Unicode Support”
- “Getting Environmental Variables” provides support for determining host-specific environmental variables
- If you use a function or type that is marked with a GCC style deprecated attribute, a warning message with line number where the statement occurs will appear.
int old_fn () __attribute__ ((deprecated));
int (*fn_ptr)() = old_fn;
foo.cpp:2: warning: `old_fn' is deprecated (declared at foo.cpp:1)
- New and newly documented #pragmas include:
- New and newly documented x86 #pragmas include:
- Information in this manual now uses references to the ISO C and C++ standards instead of Ellis and Stroustrup’s The Annotated C++ Reference Manual (ARM) and Kernighan and Richie’s The C Programming Language (K&R).