C and C++ 68xxx Family Release Notes Introduction These release notes describe the V9.2r0, V9.1r1, and V9.1r0 Releases of the TASKING 68xxx Family Compiler/Assembler Toolkit. The notes are divided into the following sections: Important Changes Changes in Release 9.2 r0 Changes in Release 9.1 r0 New Features C++ Run-time Library and C++ STL - New in Release 9.1 r0 Known Problems C++ Compiler Front End C Compiler Front End Resolved Problems Compiler Driver - Fixed in Release 9.1 r1 C++ Compiler Front End - Fixed in Release 9.2 r0 C++ Compiler Front End - Fixed in Release 9.1 r0 C Compiler Front End - Fixed in Release 9.2 r0 Compiler Optimizer - Fixed in Release 9.2 r0 Compiler Optimizer - Fixed in Release 9.1 r1 Compiler Back End - Fixed in Release 9.1 r1 Compiler Back End - Fixed in Release 9.1 r Assembler - Fixed in Release 9.2 r0 C++ Run-time Library - Fixed in Release 9.1 r0 C Run-time Library - Fixed in Release 9.2 r0 C Run-time Library - Fixed in Release 9.1 r1 C Run-time Library - Fixed in Release 9.1 r0 Formatter - Fixed in Release 9.2 r0 Formatter - Fixed in Release 9.1 r1 Important Changes Changes in Release 9.2 r0 ********** The EDE has been updated to support the Windows make utility and to provide build progress information. This also includes changes to the DOL file. FlexLM was added to the compiler. A number of reported bugs were fixed. ********** Changes in Release 9.1 r0 ********** The C++ compiler package includes a public-domain version of the Standard Template Library. See below under "New Features." The C++ runtime library is supplied precompiled with and without exception handling. The C++ front end supports several new language features. ********** New Features C++ Run-time Library and C++ STL - New in Release 9.1 r0 ********** The C++ compiler package now includes a public-domain version of the Standard Template Library, in directory rtlibs/cppstl. Although TASKING has made some corrections to this code, TASKING makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. The C++ runtime library is now supplied precompiled with and without exception handling. ********** Known Problems C++ Compiler Front End ********** As of version 9.1 r0, the C++ language supported has the following limitations with regard to the standard: - enum types cannot contain values larger than can be contained in an int. - reinterpret_cast does not allow casting a pointer to member of one class to a pointer to member of another class if the classes are unrelated. - Two-phase name binding in templates, as described in [temp.res] and [temp.dep] of the standard, is not implemented. - Class name injection is not implemented. - Putting a try/catch around the initializers and body of a constructor is not implemented. - Template template parameters are not implemented. - Koenig lookup of function names on all calls is not implemented. - Finding friend functions of the argument class types on name lookup on the function name in calls is not implemented. - String literals do not have const type. - Universal character set escapes (e.g., \uabcd) are not implemented. - The export keyword for templates is not implemented. ********** C Compiler Front End ********** A spurious warning message was sometimes generated for the conversion of an enumeration type to an integer. [PTM 5681] Not all ANSI error checks for functions returning structures are properly enforced. ANSI C says that a structure returned from a function is not an lvalue. This means that it should be illegal to take its address. The compiler permits this, but the results are unpredictable. [PTM 5351] Several error conditions in source programs are not properly flagged by the front end. Usually these result in internal errors in the back end or optimizer. For example, the `&' (logical and) operator cannot be applied to floating point values. An attempt to do so should result in a front end diagnostic, not a "syntax error" in the back end. Under the -E (print pre-processor output) switch, wide character constants (L'a') do not print properly. Under the -mp (make prototypes) switch, prototypes are generated for static functions. They should be omitted. ********** Resolved Problems Compiler Driver - Fixed in Release 9.1 r1 ********** The number of permissable tokens in a -opfile file has been raised from 50 to 5000. ********** C++ Compiler Front End - Fixed in Release 9.2 r0 *********** An intermittent C++ front end crash has been fixed [Incident 5626]. ********** C++ Compiler Front End - Fixed in Release 9.1 r0 *********** Under certain unusual circumstances, class member names were not properly mangled [Incident 3623]. ********** C Compiler Front End - Fixed in Release 9.2 r0 *********** Change a number of abnormal terminations to fatal errors to allow the error buffer to be flushed for the user to see. *********** Compiler Optimizer - Fixed in Release 9.2 r0 ********** A bug in the optimizer causing compiler crashes has been fixed. ********** Compiler Optimizer - Fixed in Release 9.1 r1 ********** A bug in the optimizer causing crashes under Windows 95 and NT has been fixed. [Incident 4492] ********** Compiler Back End - Fixed in Release 9.1 r1 ********** At times, the back end incorrectly neglected to emit a linefeed before a _debsym directive when generating assembly language in -ia mode. This has been fixed. [Incident 4492]. ********** Compiler Back End - Fixed in Release 9.1 r0 ********** The back end emitted a "stack mismatch" warning under certain conditions. This has been fixed. [Incident 3376]. ********** Assembler - Fixed in Release 9.2 r0 ********** Fixed a bug in which symbol names longer than 127 characters caused the assembler to crash. ********** Link Driver - Fixed in Release 9.2 r0 ********** Removed the warning of "Unresolved symbol" for any of the prelink phases. ********** C++ Run-Time Libraries - Fixed in Release 9.1 r0 ********** Allow macro EXCEPTION_HANDLING to be set at compile time to determine whether the library will be built to support exception handling. [Incident 3750]. Reworked include file cppinc/exception to comply with C++ standard. Removed incorrect stdexcept file from cppinc. A corrected version is now included in the cppstl directory. ********** C Run-Time Libraries - Fixed in Release 9.1 r1 ********** Corrected definition of some 68360 registers in qsm30.h68. [Incident 4482]. Corrected a year-2000 problem with strftime. [Incident 4683]. ********** C Run-Time Libraries - Fixed in Release 9.2 r0 ********** xscanf.c now correctly processes '%[^.]%c' control string. [Incident 5256]. xprintf.c now correctly handles %n. Fixed sim30.h and sim60.h to comform to Motorola layouts. ********* C Run-Time Libraries - Fixed in Release 9.1 r0 ********** Fix the implementation of va_start in stdarg.h [Incident 3988]. ********** Formatter - Fixed in Release 9.2 r0 ********** Modified form695 to support symbol names up to 1000 characters in length. ********** Formatter - Fixed in Release 9.1 r1 ********** Under some circumstances, incorrectly nested BB5 records were emitted by form695. This has been corrected. [Incident 4482]. ********** @(#)m/r/c682u/readme 1.25