ECO NUMBER: CCAE04062 ----------- PRODUCT: Compaq C for OpenVMS Alpha -------- UPDATED PRODUCT: Compaq C for OpenVMS Alpha 6.2A ---------------- APPRX BLCK SIZE: 45738 ---------------- COMPRESSED KIT CHECKSUM: 3303249264 ------------------------ ECO KITS SUPERSEDED BY THIS ECO KIT: CCAE03062 CCAE02062 CCAE01062 ----------------------- COVER LETTER for ECO KIT 4 Compaq C Versions 6.2A and 6.2 for OpenVMS Alpha ___________________________________________________________________________ PROBLEM DESCRIPTION: -------------------- This ECO kit is the first to correct problems in V6.2A. But because the numbering system for ECO kits is based on the original parent version, V6.2, it is called ECO 4. ECO 3 was the last ECO to V6.2, before the release of V6.2A. o When the return statement of an old-style function definition contained a recursive call, the compiler would sometimes try to replace the recursive call with a loop construct that did not correctly intialize all the loop control elements. [First corrected in V6.2A ECO kit 4, compiler ident V6.2-009.] o In circumstances that cannot easily be characterized at the source code level, optimization of the code generated for the va_arg macro (for traversing variable-length argument lists) could produce an incorrect result - in some cases accessing the argument value following the one that should have been accessed. [First corrected in V6.2A ECO kit 4, compiler ident V6.2-009.] o The compiler could incorrectly optimize certain loops in which computation of the trip count depended on loop bounds and/or increments that were run-time expressions that were not made into CSEs. This could manifest either as incorrect code or an internal error. [First corrected in V6.2A, compiler ident V6.2-008.] o The compiler emits the message bltinimplret by default when certain runtime library functions that do not return an int are called without including the appropriate header. This message is confusing to many users when it appears in existing well-debugged applications. The compiler has been changed so that bltinimplret is no longer emitted by default, but only when enabled explicitly (or as part of the performance or level5 message groups). [This change first appeared in ECO kit 3, compiler ident V6.2-007.] o Sometimes the compiler may hang when large programs containing misaligned data are compiled with the /DEBUG qualifier and optimization is not suppressed. The compiler now runs to completion in this sitaution. [This problem was fixed in ECO kit 2, compiler ident V6.2-006.] o Sometimes the compiler may incorrectly optimize away the "store" instruction that performs an assignment to a struct member. The only reliable workaround is to compile /NOOPTIMIZE. The compiler now produces the correct code to store the values. [This problem was fixed in ECO kit 2, compiler ident V6.2-006.] o The __CMP_STORE_QUAD built-in function converts its 3rd parameter (the new value to be stored) to a signed 32-bit value, silently truncating significant bits if passed a value not representable as a 32-bit signed int. The builtin now properly uses the full 64-bit value. [This problem was fixed in ECO kit 1, compiler ident V6.2-005.] INSTALLATION: ------------- Please note that this is not a complete kit. If you do not already have Compaq C V6.2A for OpenVMS Alpha installed on your system, please use VMSINSTAL to install CC062 in the usual manner before installing this ECO kit. When installing this kit please note that the saveset name is CCAE04062 rather than the CC062 saveset name which is specified in the installation guide: $ SET DEF SYS$UPDATE $ SET PROCESS /PRIV=ALL $! if V6.2 not already installed then $! @VMSINSTAL CC062 disk$:[dir] $ @VMSINSTAL CCAE04062 disk$:[dir] Copyright (c) Compaq Computer Corporation 2000. All Rights reserved. This software is proprietary to and embodies the confidential technology of Compaq Computer Corporation. Possession, use, or copying of this software and media is authorized only pursuant to a valid written license from Compaq or an authorized sublicensor. This ECO has not been through an exhaustive field test process. Due to the experimental stage of this ECO/workaround, Compaq makes no representations regarding its use or performance. The customer shall have the sole responsibility for adequate protection and back-up data used in conjunction with this ECO/workaround.