Patch Name: PHSS_10404 Patch Description: s700_800 10.X HP aC++ compiler (A.01.03) cumulative patch Creation Date: 97/03/24 Post Date: 97/04/02 Repost: 97/08/05 PHSS_11474 was removed from distribution. This patch was re-released till a new replacement patch is available. Hardware Platforms - OS Releases: s700: 10.01 10.10 10.20 s800: 10.01 10.10 10.20 Products: HP aC++ B3910B A.01.02 HP aC++ B3910B A.01.01 Filesets: ACXX.ACXX ACXX.ACXX-STDLIB Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_10404 Symptoms: PHSS_10404: 1. Error 438 with nested classes 2. Error 225 can't explicitly instantiate list<> 3. Error 172 with +inst_all and vector 4. Problem throwing derived class 5. Unsat for template destructor with -g 6. Destructor of templated class called twice 7. Compiler internal assertion failed at "Semantics.C"; Line 3073 8. string has wrong semantics with begin(), end() 9. insert on vectors uses assignment, not construction 10. wchar_t: CC implements as unsigned, aCC as signed 11. Assertion failure in Expand.C, line 2521 12. Assertion failure in Declaration.C, line 2543 13. +inst_none instantiates local copies of template entities 14. no dtor called on value parameter if not user copy-ctor 15. Regression in template 16. Redefined symbol error for specialized static with explicit inst 17. Failure to bind actual parameter to formal const ¶meter 18. assigner doesn't recognize +DA2.0 object in archive libraries 19. aC++ doesn't provide implicit copy ctor for iterator class PHSS_9977: 1. stdlib test algoset.cpp has linker unsat 2. the compiler fails to instantiate the requested template PHSS_9528: 1. Thrown objects get corrupted if calls in catch have large number of parm 2. can't compile with both and 3. Error 243 with RW template collection 4. Bus error if using -lrwtool and -z 5. Using persistence to store templates causes aCC runtime error. Defect Description: PHSS_10404: 1. Problem is with compiler's check for redefining names after they're used. The name in this test case is being entered in the wrong scope. 2. A bug fix for explicit instantiations and specializations did the wrong thing for member functions. 3. Error 172 with +inst_all and vector 4. Problem is with internal hashvalues used to index/compare derived classes. 5. Unsat for template destructor with -g Problem is that an exception record is added to the A::A ctor to destroy d_ should an exception be thrown and non-inline destructors do not get instantiated for this case. The reason that this shows up only with -g is that the FE optimizer can delete unreachable exception records and the optimizer is disabled for -g. 6. Destructor of templated class called twice Routines that contain a switch statement may have destructors called on their local variables more than once. 7. Problem is initializing a local of template parameter type when type is reference. 8. string has wrong semantics with begin(), end() 9. insert on vectors uses assignment, not construction 10. wchar_t is promoted to int rather then unsigned int hence comparisons against questionably signed quantities may fail. 11. Problem is with local array type in template function. 12. assertion failure in Declaration.C, line 2543 13. +inst_none instantiates local copies of template entities 14. Compiler was only checking for user-defined dtor for unsupported runtime model. 15. Two problems. One with base classes of templates and another with spilled inlines. 16. Explicit instantiation of a class did not pay attention to specialization status of static data members. 17. C++ code declaring a function taking a reference to a constant array as parameter and invoking the function with a non-constant array will not compile. 18. The assigner ignores archive libraries if the first object file is a +DA2.0 object. 19. Compile is not synthesizing an implicit copy constructor. PHSS_9977: 1. stdlib test algoset.cpp has linker unsat 2. the compiler fails to instantiate the requested template PHSS_9528: 1. Possible corruption of the thrown object may occur if the object is local where thrown and the catch clause contains a call with more parameters than any call in the function that contains the throw. 2. can't compile with both and 3. Error 243 with RW template collection 4. Signal 11 will occur upon program exit if linking with -lrwtool and -z. The abort occurs in _p_mutex_free. 5. Using the persistence functionality of any of the Rogue Wave Tools.h++ classes results in a run-time error message stating that the executable must link with libcma. SR: 4701348797 5003339796 4701343582 4701344366 4701340950 1653202895 1653203703 1653203711 1653204586 1653205492 4701344507 4701344598 4701344754 4701344879 4701345173 4701345421 4701347104 4701347336 4701347344 4701347351 4701347377 4701347518 4701348516 4701348987 Patch Files: /opt/aCC/bin/aCC /opt/aCC/lib/nls/msg/C/aCC.cat /opt/aCC/lbin/assigner /opt/aCC/lbin/ctcom /opt/aCC/include/stdcomp.h /opt/aCC/include/string what(1) Output: /opt/aCC/bin/aCC: HP aC++ B3910B A.01.03 HP aC++ B3910B A.01.01 Support Library /opt/aCC/lib/nls/msg/C/aCC.cat: None /opt/aCC/lbin/assigner: HP aC++ B3910B A.01.03 HP aC++ B3910B A.01.01 Support Library /opt/aCC/lbin/ctcom: HP aC++ B3910B A.01.03 HP-UX SLLIC/OPTIMIZER UX.10.20.377 (DAVIS): 01/10/97 HP aC++ B3910B A.01.01 Stream Library HP aC++ B3910B A.01.01 Support Library Ucode Code Generator - UX.10.20.11 (BCK_UX10.MULTI_B L16) REV: HP SESD Support Code High Level Optimizer - UX.10.20.970210 (UX10.MULTI.A CC) [-DHLO_RELEASE +O2] - 12-Mar-97.18:43 linkstamp 03/18/97 21:27:17 /opt/aCC/include/stdcomp.h: None /opt/aCC/include/string: None cksum(1) Output: 1369773611 176128 /opt/aCC/bin/aCC 3062867308 108395 /opt/aCC/lib/nls/msg/C/aCC.cat 2041020993 448468 /opt/aCC/lbin/assigner 1992820004 9940320 /opt/aCC/lbin/ctcom 150098858 43077 /opt/aCC/include/stdcomp.h 4038400717 64058 /opt/aCC/include/string Patch Conflicts: None Patch Dependencies: s700: 10.01: PHSS_9527 PHSS_10053 s700: 10.10: PHSS_9527 PHSS_10053 s700: 10.20: PHSS_9527 PHSS_10053 s800: 10.01: PHSS_9527 PHSS_10053 s800: 10.10: PHSS_9527 PHSS_10053 s800: 10.20: PHSS_9527 PHSS_10053 Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_9528 PHSS_9977 Equivalent Patches: None Patch Package Size: 10590 Kbytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHSS_10404 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_10404.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHSS_10404.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_10404. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHSS_10404.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_10404.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None