SEARCH CONTACT US SUPPORT SERVICES PRODUCTS STORE
United States    
COMPAQ STORE | PRODUCTS | SERVICES | SUPPORT | CONTACT US | SEARCH
gears
compaq support options
support home
software & drivers
ask Compaq
reference library
support forum
frequently asked questions
support tools
warranty information
service centers
contact support
product resources
parts for your system
give us feedback
associated links
.
} what's new
.
} contract access
.
} browse patch tree
.
} search patches
.
} join mailing list
.
} feedback
.
patches by topic
.
} DOS
.
} OpenVMS
.
} Security
.
} Tru64 Unix
.
} Ultrix 32
.
} Windows
.
} Windows NT
.
connection tools
.
} nameserver lookup
.
} traceroute
.
} ping
DEC C CXXAE02062 Compaq C++ V6.2 for OpenVMS Alpha ECO Summary

TITLE: DEC C CXXAE02062 Compaq C++ V6.2 for OpenVMS Alpha ECO Summary Modification Date: 12-OCT-2000 Modification Type: Updated Kit: Supersedes CXXAE01062 NOTE: An OpenVMS saveset or PCSI installation file is stored on the Internet in a self-expanding compressed file. For OpenVMS savesets, the name of the compressed saveset file will be kit_name.a-dcx_vaxexe for OpenVMS VAX or kit_name.a-dcx_axpexe for OpenVMS Alpha. Once the OpenVMS saveset is copied to your system, expand the compressed saveset by typing RUN kitname.dcx_vaxexe or kitname.dcx_alpexe. For PCSI files, once the PCSI file is copied to your system, rename the PCSI file to kitname-dcx_axpexe.pcsi, then it can be expanded by typing RUN kitname-dcx_axpexe.pcsi. The resultant file will be the PCSI installation file which can be used to install the ECO. Copyright (c) Compaq Computer Corporation 2000. All rights reserved. PRODUCT: Compaq C++ V6.2 for OpenVMS Alpha OP/SYS: OpenVMS Alpha COMPONENT: CXX$COMPILER CXX$DEMANGLE CXX$LINK CXX$COMPILER_MSG CXX$LINK_MSG LIBCXXSTD.OLB SOURCE: Compaq Computer Corporation ECO INFORMATION: ECO Kit Name: CXXAE02062 ECO Kits Superseded by This ECO Kit: CXXAE01062 ECO Kit Approximate Size: 37,926 Blocks Kit Applies To: Compaq C++ V6.2 for OpenVMS Alpha OpenVMS Alpha V6.2 through V7.2-1 System/Cluster Reboot Necessary: No Rolling Re-boot Supported: Information Not Available Installation Rating: INSTALL_3 3 - To be installed on all systems running the listed versions of OpenVMS which are experiencing the problems described. Kit Dependencies: The following remedial kit(s) must be installed BEFORE installation of this kit: None In order to receive all the corrections listed in this kit, the following remedial kits should also be installed: None ECO KIT SUMMARY: An ECO kit exists for Compaq C++ V6.2 for OpenVMS Alpha on OpenVMS Alpha V6.2 through V7.2-1. This kit addresses the following problems: Problems Addressed in CXXAE02062: Kit Installation Script o The Compaq C++ kit installation procedure no longer overwrites Compaq C header files if those on the system were created later than those on the kit. o The Compaq C header files (decc$rtldef.tlb) has been updated on this kit. These new headers define functionality which has been added to recent versions of OpenVMS as well as fix problems which were reported. o The installation of the Compaq C components have been removed from the CCXX$STARTUP.COM command procedure. A comment was placed in the command procedure telling people of this change and referring them to the DECC$STARTUP.COM procedure. Compiler o Attempts to restore pointer size using a pragma which differs from the pragma used to save the pointer size will now result in a diagnostic. Prior to this change, the compiler would take a memory access violation. o When one attempts to compile code which includes an explicit reference to an implicitly declared special member function, the compiler complains 'class "A" has no member "operator="'. The standard clearly states that all classes have copy assignment operators, so the compiler now creates an implicit declaration for the copy assignment operator if no user-declared copy assignment operator exists. o The compiler was incorrectly generating diagnostics for unreachable code which had been created by the compiler to deal with calling destructors shall an exception be thrown. The compiler no longer generates these warnings for compiler generated code. o Assigning the address of a NULL pointer to a variable was causing the compiler to issue integrity checks. This is now handled correctly. o A problem was corrected in the information written to an object module compiled using /debug to allow the debugger to locate the source files of template instantiations. o The compiler was micalculating the size of multidimensional arrays in our exception handling support. Destructors called for these array elements were being given an incorrect offset and would sometimes access beyond its array boundary. o A problem has been fixed where using the += operator on a variable pointed to by a char** member variable now operates correctly. There were cases which caused an extra increment operation to occur. o Static arrays within inline member functions with an initializer list containing both constant and non- constant initializers were not initialized correctly. Array elements initialized by constant initializers were instead initialized to 0. The compiler now initializes all array elements correctly. o The compiler no longer generates a GEM_ASSERTION when generating a listing for a file containing a #pragma module statement. o The macro __VMS_VER is no longer defined when the compiler cannot parse the version string of the underlying OpenVMS operating system. Prior to this change it was defined as zero. Standard Library o The run-time exception library no longer creates a new lock on each call to the cxxl$set_condition function. It now properly converts a single lock to and from exclusive access mode. o Compaq C++ version 6.2 had a bug in the string extraction operator that caused it to eat the extra space at the end of the string: ifstream inFile("input.dat"); // input.dat contains "abc de" inFile >> word; // read "abc" inFile.get(ch1); // ch1 should be space, was 'd' This problem has been fixed. o The basic_string reference count used to be protected by a mutex, which called thread locking and unlocking routines to ensure thread safety. The implementation was changed to instead use atomic builtins (see Appendix B of the C++ Using Guide), which should improve the performance of this class in multithreaded applications. o The basic_string::find_first_not_of(charT, size_type) function did not work correctly if the string contained embedded nulls. This has been corrected in this release. o If you compiled your program in strict_ansi mode and used the basic_fstream class, run-time access violations could happen. This is fixed in this release. o The V6.2 version of standard iostreams and locales had a bug which prevented them from being multi-thread safe. This has been fixed. o The standard library vector class did not allocate space for elements greater than 1024 bytes correctly, which could lead to runtime core dumps. This has been fixed. o A fix was added to the tree data structure (which sets and maps use) which will decrease the amount of space allocated for small element size containers. o In V6.2, basic_ostream::flush() would not always flush the buffer if the type of the stream was an fstream. This has been fixed. o The standard library headers no longer include pthread.h or tis.h. This allows them to be used in conjunction with the macro _PTHREAD_USE_D4 (DECthreads POSIX 1003.4a/Draft 4 (or d4) interface). Problems Addressed in CXXAE01062: Compiler o The compiler now generates code that reports a static data member as an undefined symbol at link time if the data member is referenced but not defined. o The new cxxlink design implemented in Version 6.2 to use .olbs instead of objects is not a general solution. The default behavior of cxxlink was changed back to using objects (/prelink=use_object_files) and the switch /prelink=use_olb was added to obtain the new mechanism. The new mechanism was simplified for better performance. No attempt is made to try alternative link methods if the link fails; the default link must be used. o Names in the C++ standard library are now prefixed with CXXL$ as a facility prefix. This change allows /names=as_is to work because the prefixed names are always in uppercase. o In the C++ Version 6.1 compiler, some objects might have their exception unwinding information set to a negative index in the cleanup table. This condition generates the following message: Unexpected dtor_block_tag in do_dtor_cleanup Standard Library o In versions 6.2 and earlier, a problem in the assignment operator for the class raw_storage_iterator could cause a run-time seg fault if, for example, you called the algorithm stable_sort() more than once with the same container. The problem has been corrected. o In version 6.2, two of the basic_string::compare() member funrtions were throwing an exception if the length of the second string was longer than the length of the current string. This has been fixed so that they throw an exception only if the position the user specifies within the second string is greater than the length of the second string. o A problem in the basic_string::resize() member function in Version 6.2 has been corrected. The incorrect behaveior was that if two strings pointed at the same underlying char*, and the resize() function was called on one of them, and if you then you changed the underlying string for one string, the value for the other strings value would also be changed. o A problem in the basic_string assignment operator prevented strings containing embedded nulls from being copied correctly. The problem has been corrected. INSTALLATION NOTES: The system does not need to be rebooted after this kit is installed. However, if the system is a member of a VMScluster, the other cluster members should be rebooted or this kit should be installed on each system in order to make use of the new image(s). All trademarks are the property of their respective owners. Copyright (c) Compaq Computer Corporation 2000. All rights reserved. Modification Date: 12-OCT-2000 Modification Type: ARCHIVED PRODUCT: Compaq C++ V6.2 for OpenVMS Alpha OP/SYS: OpenVMS Alpha COMPONENT: CXX$COMPILER CXX$DEMANGLE CXX$LINK CXX$COMPILER_MSG CXX$LINK_MSG LIBCXXSTD.OLB SOURCE: Compaq Computer Corporation ECO INFORMATION: ECO Kit Name: CXXAE01062 ECO Kits Superseded by This ECO Kit: None ECO Kit Approximate Size: 88,893 Blocks Kit Applies To: Compaq C++ V6.2 for OpenVMS Alpha OpenVMS Alpha V6.2 through V7.2-1 System/Cluster Reboot Necessary: No Rolling Re-boot Supported: Information Not Available Installation Rating: INSTALL_3 3 - To be installed on all systems running the listed versions of OpenVMS which are experiencing the problems described. Kit Dependencies: The following remedial kit(s) must be installed BEFORE installation of this kit: None In order to receive all the corrections listed in this kit, the following remedial kits should also be installed: None ECO KIT SUMMARY: An ECO kit exists for Compaq C++ V6.2 for OpenVMS Alpha on OpenVMS Alpha V6.2 through V7.2-1. This kit addresses the following problems: Compiler o The compiler now generates code that reports a static data member as an undefined symbol at link time if the data member is referenced but not defined. o The new cxxlink design implemented in Version 6.2 to use .olbs instead of objects is not a general solution. The default behavior of cxxlink was changed back to using objects (/prelink=use_object_files) and the switch /prelink=use_olb was added to obtain the new mechanism. The new mechanism was simplified for better performance. No attempt is made to try alternative link methods if the link fails; the default link must be used. o Names in the C++ standard library are now prefixed with CXXL$ as a facility prefix. This change allows /names=as_is to work because the prefixed names are always in uppercase. o In the C++ Version 6.1 compiler, some objects might have their exception unwinding information set to a negative index in the cleanup table. This condition generates the following message: Unexpected dtor_block_tag in do_dtor_cleanup Standard Library o In versions 6.2 and earlier, a problem in the assignment operator for the class raw_storage_iterator could cause a run-time seg fault if, for example, you called the algorithm stable_sort() more than once with the same container. The problem has been corrected. o In version 6.2, two of the basic_string::compare() member funrtions were throwing an exception if the length of the second string was longer than the length of the current string. This has been fixed so that they throw an exception only if the position the user specifies within the second string is greater than the length of the second string. o A problem in the basic_string::resize() member function in Version 6.2 has been corrected. The incorrect behaveior was that if two strings pointed at the same underlying char*, and the resize() function was called on one of them, and if you then you changed the underlying string for one string, the value for the other strings value would also be changed. o A problem in the basic_string assignment operator prevented strings containing embedded nulls from being copied correctly. The problem has been corrected. INSTALLATION NOTES: The system does not need to be rebooted after this kit is installed. However, if the system is a member of a VMScluster, the other cluster members should be rebooted or this kit should be installed on each system in order to make use of the new image(s). All trademarks are the property of their respective owners.



This patch can be found at any of these sites:

Colorado Site
Georgia Site



Files on this server are as follows:

cxxae02062.README
cxxae02062.CHKSUM
cxxae02062.CVRLET_TXT
cxxae02062.a-dcx_axpexe
cxxae02062.CVRLET_TXT

privacy and legal statement