Patch Name: PHSS_14263 Patch Description: s700_800 10.[12]0 HP aC++ compiler (A.01.12) patch Creation Date: 98/03/02 Post Date: 98/03/25 Hardware Platforms - OS Releases: s700: 10.10 10.20 s800: 10.10 10.20 Products: HP aC++ B3910B A.01.09 HP aC++ B3910B A.01.07 Filesets: ACXX.ACXX ACXX.ACXX-MAN ACXX.ACXX-STDLIB Auxiliary-Opt.LANG-AUX Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_14263 Symptoms: PHSS_14263: 1. No return value optimization, NRV 2. Error 173 with namespaces and templates 3. Signal 11 on default value for ref parm 4. Signal 11 in generateBaseClassTable 5. Bad initialization of static wchar_t array corrupts other inits 6. Signal 11 compiling friend function in mergeTwoFunctionDecls 7. No error on 'int a[2] = "a"' 8. (macro-name) doesn't prevent expansion of parameterized define 9. Error 133 mismatched #endif with -Y 10. Signal 11 in typedefedExplicitDtorCall after error 11. Error 255 ambiguous conversion on ptr to void*/bool 12. Error 100 on "\\\\" with -Y 13. Warning 741 reword unsafe cast between pointers message 14. Assertion failed at Expand.C 15. Error 641 with -DRWDEBUG on RW headers 16. Attempting to set __STDC__ is ignored without a message 17. TEMPLATES: can't parse A::X::Base 18. STDLIB: references undefined Distance 19. Error 5705 ustack underflow hpt Len1/bs12028cnnn.C in void function PHSS_13389: 1. Excessive CPU and VM usage and compile time with STL 2. Warning 567 incorrectly given if #line used before #if/#endif 3. Recursive stack overflow, ::operator new calls class new instead 4. Signal 11 on function scope static reference 5. Assertion in Signatures.C 6. Signal 11 after syntax error in doReduction1 7. Signal 11 after syntax error in getTemplate 8. Bad code for 0 for pointer to member function as func parm 9. Signal 11 in unifyClassTemplates 10. Signal 11 on friend function definition 11. Error 5705 and OOPS message declaring extern in function 12. Error 19 when using friend ::operator, also scope of friend 13. Unsatisfied symbols when using string and namespace 14. Duplicate include file optimization prevents second include 15. Truncated .i files with +inst_implicit_include -P/-E 16. Error 5726 bad NSYMs with +O2, static within inline template 17. StringConstant type lost when casting 18. unions not aligned on 4 byte boundaries, if int members 19. Static destructors not invoked during 64-bit shared lib unload 20. Wrong dtor called when template arg is pointer (when indexed) 21. Compiler generated copy constructor overwrites memory 22. Duplicate symbols with inlines and +inst_none 23. Preprocessor omits spacing for function typedefs with -E/-P 24. Copy assignment misses second entry point %2 25. Bad mangled name with "~" on call to class destructor in template 26. Signal 11 when using templates, long mangled names > 8K 27. Assertion in TypePackage.C Defect Description: PHSS_14263: 1. No return value optimization, NRV 2. Namespace context is lost during symbol merge. 3. Problem occurred trying to create temporary for adjusting a default parameter. 4. aC++ aborts with a signal 11 in generateBaseClassTable. 5. Calculation of how many null bytes to terminate wide string. 6. Code that checked for mismatched template parameters was too aggressive 7. Failed to detect the error of initializing an integer array with a character string. 8. (macro-name) doesn't prevent expansion of parameterized define 9. NLS swallows characters without processing them if C-style comment straddles internal buffer boundaries (4096 characters.) 10. Signal 11 in typedefedExplicitDtorCall after error 11. There are some operator overloading prboblems in aCC in dealing with conversion from pointer to bool/void* types. 12. Incorrect processing of backslashes in a string with NLS on. 13. Message 741 is currently a future error: it is emitted when a cast was first interpreted as a reinterpret_cast, while it later turned out that the source and destination type of the cast were part of the same inheritance lattice. However, this sort of code is not condemned by the ISO FDIS; the message should not talk about "ill-formed conversion" (instead: "unsafe conversion"), and should not call it a future error (since it is valid C++ code). 14. typename processing was not being done for default template parameters. 15. The Rogue Wave template library files and contain references to isEmpty that cause compile time error #641. 16. Attempts at defining the Standard C macro __STDC__ are ignored by aC++. 17. Grammar support for multiply qualified typenames was weak 18. The file /opt/aCC/include/list had "Distance" instead of "distance". 19. The program gets: Error (internal problem) 5705: # Ustack underflow (5705) PHSS_13389: 1. Inliner consumes lots of memory for STL templates. 2. aCC issued spurious warnings about ifndef/endif being in separate files in the presence of a line directive that reset the file name and a header file inclusion prior to the endif directive. 3. Calling ::operator new within a class with operator new gets a recursive stack overflow. 4. Reference initializer temporaries of the wrong storage class were being reused 5. Copying template arguments on qualified variable can leave multiple owners of a single block of memory 6. aCC cannot recover from user error. So, compilation will be terminated, instead of continuing. 7. aCC cannot fully recover from user error. So, it will terminate the compilation in the next release, instead of running wild. 8. Passing 0 valued pointer-to-member-function to a function fails. This resulted in bad code generation. Generated code was in such a way that it is not always possible to see the incorrect behavior. The default valued pointer-to-function was not a factor. It just happened to show the symptom. 9. Partial specializations were not taken into account when unifying template arguments with their parameters 10. Using mod_elt without template arguments inside friend function definition loses context necessary to resolve the template name 11. Error 5705 and an OOPS message occurs when declaring extern in a function. OOPS!! Variable::emitCode(): unexpected declPtr->classId(): Class 12. Grammar support for friend ::operator was missing. 13. Type_info names are mistakenly created inside the user's namespace 14. If an include file using a poor coding style has two conditional compilation sections that has the #endif at the end of the include, then the file is only included once. #ifndef XX #define XX #endif stuff-1 #ifdef YY stuff-2 #endif 15. Truncated .i files with +inst_implicit_include -P/-E. 16. If a function scope static occurs inside a inline function then error 5726 may occur if optimizing. 17. Problem was that NSYM MODIFIER was not being generated for string constant for its type being const char[]. 18. Run time aborts may occur if a union contains ints, doubles, pointers and char arrays such that the char array size is not a multiple of the other more restricted aligned types. 19. Static destructors not invoked during shared lib unload on 64-bit. 20. Semantics checking on .~X() is not checking for non-class object. 21. Compiler-generated copy constructors for classes that declare bitfield data members near the end of the class may overwrite memory by as much as three bytes beyond the end of the memory associated with an object of such a class. 22. Compiling two sources that use the same inline function with +inst_none may get duplicate symbols in the linker if the functions must be dropped out of line. 23. Given the input typedef int (func) (); the preprocessor produces typedef intfunc (); 24. Unsats like D::operator =(const D &)%2 (code) may occur. 25. Unsatisfied symbols occur with embedded "~" when explicitly calling a destructor with this->~foo() in a template. 26. The compiler will abort with signal 11 if using templates that generate external names of over 4000 (with -g) or 8K bytes. Also various other tools will abort with these long lengths. 27. Problem occurs when aggregate has a initial member of array type and an initializer list. SR: 1653218099 1653220145 1653232819 1653233494 1653234021 1653234120 1653234146 1653235333 1653235465 1653235804 1653236604 1653237081 1653238105 1653239848 4701354894 4701359653 4701367557 4701369702 4701370809 4701374074 4701374355 4701374777 4701375568 4701376749 5003392829 5003387910 5003398776 1653207183 1653239160 1653241729 1653242503 1653243444 1653249920 4701373431 4701376731 4701377192 4701379016 4701379321 4701380501 5003398933 5003401794 5003402487 5003403485 5003404160 1653247791 4701385633 Patch Files: /opt/aCC/bin/aCC /opt/aCC/newconfig/RelNotes/ACXX.release.notes /opt/aCC/share/man/man1.Z/aCC.1 /opt/aCC/share/man/man3.Z/acxx_demangle.3 /opt/aCC/lbin/assigner /opt/aCC/lbin/ctcom /opt/aCC/lbin/ld /opt/aCC/lib/nls/msg/C/aCC.cat /opt/aCC/lib/nls/msg/C/aCC.msgs /opt/aCC/lib/nls/msg/C/ld.cat /opt/aCC/include/acxx_demangle.h /opt/aCC/include/cmath /opt/aCC/include/complex /opt/aCC/include/deque /opt/aCC/include/list /opt/aCC/include/tree /opt/aCC/include/iostream/iomanip.h /opt/aCC/include/iostream/iostream.h /opt/aCC/include/rw/ep_seq.h /opt/aCC/include/rw/ev_scntn.h /opt/aCC/include/rw/ev_seq.cc /opt/aCC/include/rw/ev_srtsq.cc /opt/aCC/include/rw/tpsldict.cc /opt/aCC/include/rw/tvdlist.h /opt/aCC/include/rw/tvsldict.cc /opt/aCC/html/librwtool/Fil_2234.htm /opt/langtools/lib/nls/msg/C/ucomp.cat.tmp /opt/langtools/lbin/ucomp.tmp what(1) Output: /opt/aCC/bin/aCC: HP aC++ B3910B A.01.12 HP aC++ B3910B A.01.01 Support Library /opt/aCC/newconfig/RelNotes/ACXX.release.notes: None /opt/aCC/share/man/man1.Z/aCC.1: None /opt/aCC/share/man/man3.Z/acxx_demangle.3: None /opt/aCC/lbin/assigner: HP aC++ B3910B A.01.12 HP aC++ B3910B A.01.01 Support Library /opt/aCC/lbin/ctcom: HP aC++ B3910B A.01.12 HP-UX SLLIC/OPTIMIZER UX.10.20.557 (DAVIS): 02/03/98 HP aC++ B3910B A.01.01 Stream Library HP aC++ B3910B A.01.01 Support Library Ucode Code Generator - UX10.20.60 (PACG_UX10.MULTI_B L32) REV: HP SESD Support Code High Level Optimizer - UX.10.21.971124 (UX10.MULTI) [-DHLO_RELEASE +O2] - 09-Jan-98.15:45 linkstamp 03/05/98 15:35:21 /opt/aCC/lbin/ld: 92453-07 linker linker ld B.10.29 (aCC) 980305 /opt/aCC/lib/nls/msg/C/aCC.cat: None /opt/aCC/lib/nls/msg/C/aCC.msgs: None /opt/aCC/lib/nls/msg/C/ld.cat: ld_msgs.cat: $Revision: 1.85 $Entry symbol /opt/aCC/include/acxx_demangle.h: None /opt/aCC/include/cmath: None /opt/aCC/include/complex: None /opt/aCC/include/deque: None /opt/aCC/include/list: None /opt/aCC/include/tree: None /opt/aCC/include/iostream/iomanip.h: cls4:incl-master/const-headers/iomanip.h 1.3 /opt/aCC/include/iostream/iostream.h: cls4:incl-master/const-headers/iostream.h 1.7 /opt/aCC/include/rw/ep_seq.h: None /opt/aCC/include/rw/ev_scntn.h: None /opt/aCC/include/rw/ev_seq.cc: None /opt/aCC/include/rw/ev_srtsq.cc: None /opt/aCC/include/rw/tpsldict.cc: None /opt/aCC/include/rw/tvdlist.h: None /opt/aCC/include/rw/tvsldict.cc: None /opt/aCC/html/librwtool/Fil_2234.htm: None /opt/langtools/lbin/ucomp.tmp: HP-UX UCOMP UX.10.20.312 (DAVIS): 02/03/98 HP-UX SLLIC/OPTIMIZER UX.10.20.557 (DAVIS): 02/03/98 Ucode Code Generator - UX10.20.60 (PACG_UX10.MULTI_B L32) High Level Optimizer - UX.10.21.971124 (UX10.MULTI) [-DHLO_RELEASE +O3] - 27-Feb-98.13:56 /usr/lib/libc: $Revision: 76.3 $ /opt/langtools/lib/nls/msg/C/ucomp.cat.tmp: None cksum(1) Output: 3085898813 188416 /opt/aCC/bin/aCC 2272803834 38426 /opt/aCC/newconfig/RelNotes/ ACXX.release.notes 2527794507 17501 /opt/aCC/share/man/man1.Z/aCC.1 2139520280 1025 /opt/aCC/share/man/man3.Z/acxx_demangle.3 1701119237 449332 /opt/aCC/lbin/assigner 3590547544 10161820 /opt/aCC/lbin/ctcom 2289236024 414992 /opt/aCC/lbin/ld 2365492125 115105 /opt/aCC/lib/nls/msg/C/aCC.cat 2042595726 232563 /opt/aCC/lib/nls/msg/C/aCC.msgs 4134059675 20845 /opt/aCC/lib/nls/msg/C/ld.cat 1209027038 474 /opt/aCC/include/acxx_demangle.h 2453302679 4253 /opt/aCC/include/cmath 2161315671 39974 /opt/aCC/include/complex 3901868283 23192 /opt/aCC/include/deque 1475443441 22784 /opt/aCC/include/list 676785218 29219 /opt/aCC/include/tree 1322637912 3755 /opt/aCC/include/iostream/iomanip.h 3181872546 21633 /opt/aCC/include/iostream/iostream.h 2789033445 7969 /opt/aCC/include/rw/ep_seq.h 1324616952 6438 /opt/aCC/include/rw/ev_scntn.h 114738232 5983 /opt/aCC/include/rw/ev_seq.cc 2682343977 7439 /opt/aCC/include/rw/ev_srtsq.cc 1774212060 8652 /opt/aCC/include/rw/tpsldict.cc 1197412244 11707 /opt/aCC/include/rw/tvdlist.h 999096122 7923 /opt/aCC/include/rw/tvsldict.cc 819983234 22269 /opt/aCC/html/librwtool/Fil_2234.htm 1604727225 5543138 /opt/langtools/lbin/ucomp.tmp 2780041833 38214 /opt/langtools/lib/nls/msg/C/ucomp.cat.tmp Patch Conflicts: None Patch Dependencies: s700: 10.10: PHSS_14262 PHSS_13124 PHKL_8691 s700: 10.20: PHSS_14262 PHSS_13124 PHKL_8693 PHCO_14038 s800: 10.10: PHSS_14262 PHSS_13124 PHKL_8692 s800: 10.20: PHSS_14262 PHSS_13124 PHKL_8694 PHCO_14038 Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_13389 Equivalent Patches: None Patch Package Size: 17170 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_14263 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_14263.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_14263.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_14263. 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_14263.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_14263.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None