Patch Name: PHSS_7498 Patch Description: s700_800 10.01-10 HP C++ patch version (A.10.22) Creation Date: 96/06/17 Post Date: 96/07/01 Hardware Platforms - OS Releases: s700: 10.01 10.10 s800: 10.01 10.10 Products: HP CPLUSPLUS A.10.11 HP CPLUSPLUS A.10.09 HP CPLUSPLUS A.10.07 HP CPLUSPLUS A.10.03 HP CPLUSPLUS A.10.01 Filesets: C-Plus-Plus.HPCXX C-Plus-Plus.HPCXX-MAN Auxiliary-Opt.LANG-AUX Automatic Reboot?: No Status: General Superseded Critical: No Path Name: /hp-ux_patches/s700_800/10.X/PHSS_7498 Symptoms: PHSS_7498: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_7498: 1. +pti requires all templates to be in disjoint sets 2. Error 3173 missing type on nested typedef in template 3. Errors 1437 and 1249 with nested classes in templates 4. Errors 1682 and 1290 with templates with nested classes 5. Memory leak in when calling expand_wildcards 6. Error 1128 with X.03.74 - compiles with A.03.72 7. Static constructor not executed in archive library code, for const 8. Error 3263 generated template instance not unique 9. Error 1299, access violation, not honoring friend 10. If there is a path to not return a value from a function, no error issued 11. Core dump for misaligned access through pointer++ 12. Syntax error unreported for trailing comma in parameter list, enum too 13. Error 7403, undefined label, 3058, 1588 with +T, address of operator= 14. No error 1570 is given when defining an array of abstract classes 15. Error 5723 NSYM type undefined at +O2 for parm (const data member) 16. pxdb: Can't link template expansion, with template forward & friend 17. Doesn't detect illegal access to protected/private nested classes 18. Error 1723, nested classes in template don't work properly 19. Error 1114 on enum when generating debug info for template 20. Remove warning 213 and implement long double with +a0 in compiler mode 21. CC.1 isn't in compressed format in patch PHSS_6468 22. Error 1299: template instantiation fails with +eh 23. No debug info for class if no use of data field 24. Error 5705: Ustack underflow passing 0 to inline pointer parm 25. "static class X { ... }" is accepted 26. Error 1736 ambiguous call, -ext and enum to ostream<< long long overload 27. Error 4200 get_simple_initializer: base was 81 on template 28. Error 4200, 3083 with +T with templates, before template arg defined 29. Sorry 2072, formal type parameter X used as base class of template 30. Warning 268 if +w option on constructor with one ref parm 31. Wants long long support (64 bit integers) 32. Error 1231 with templates with nested class 33. Error 1502 declaring operator struct foo 34. Error 1637 Regression from A.03.65, template instantiation, bad operand 35. Error 1830 using template type for catch type 36. Need message when exceeding compiler limit of base class size 37. Using double/float and >> ws sets failbit for istrstream 38. Error 1285 undefined when using typedef with same name as class 39. Template function not instantiated if other inline templates done 40. Error 1437 when using class scope enum type as a template argument 41. No man page sma(3x) for Codelibs 42. Warning 285, Can't demangle template classes with leading __, with -g 43. Error 1204 ++ of void* when using typedef from a template 44. Error 760 ptlink creates file names > 255 chars, use -pth to truncate 45. Invalid loader fixup needed with +z and complex auto initializer 46. Initialization of anonymous union wipes out other struct members 47. Error 4200 - couldn't find pointer offset, complex hierarchy 48. c++merge setting improper permissions on .o, 666 - umask vs. & 49. Warning 188 - unable to emit debug info correctly, operator-> 50. lib++.a is A.03.65, missing fix for SR 1653125971 PHSS_6470: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_6470: 1. Error 1772 with templates, member function, template of same name 2. Error 5169 Missing LAB for label using goto 3. Template expansion refused if both const and non-const parameter used 4. No error trying to access a private nested class member 5. Error 4201, unimplemented node (base MEMPTR) for bad syntax 6. Overloading resolution for functions is wrong when template 7. Doesn't detect that a class name has been reused 8. Error 5705 Ustack underflow passing 0 to inline pointer to func 9. Error 1639, template cast to private base class 10. Error 4201 Unimplemented node (base null) 3081 with +T 11. Error 1922 signal 11, stack overflow, nested class ending in "_" 12. Error 1805 template function matches multiple instances 13. Index out of range: GOTOs and +eh don't work together 14. Error 3133 check message with char*& 15. Error 5172 unimplemented CVT, +T 1555 16. Misleading message 508 when a break occurs within {} in a switch +T 17. Problems with class members of type static anonymous union 18. No warning 127 if lack of "public" for base class of a struct 19. Sorry 2012, general initializer (const pointer) 20. Error 5172, Backend Assert ** Unimplemented CVT on (?:) 21. Incorrect overload disambiguation for constant literal unsigned long 22. Error 1078, superfluous class-name qualifier in destructor declaration 23. Error 3051 for legal hexadecimal character constant 24. Comma exprs in while condition aren't properly executed during looping 25. Error 5212 duplicate label with inline function 26. Compiler fails to detect reuse of an enum id 27. Error 3071: redefinition of type name _type on bad code 28. Error 5172 Backend Assert Unimplemented CVT, nested overloaded operators 29. Error 4200 element_size, 7103, +T 1588 using +d +eh on nested class 30. NSYM offsets in anonymous unions not aligned 31. Error 5172 with +eh and inline function (several times) in diff funct 32. Error 4200: u_balance_expr_types: mystery - types: P, I 33. +T gets cc warning when using typedef for char, in a const array 34. float operands widened with +a1 in CC compiler mode 35. Nested new statements confuse compiler with +eh 36. Bit fields not implicitly converted to base types on assignment 37. Runtime error: Index out of range with +eh, temps before throw 38. eh problem - Runtime Internal Error: Index out of range, delete[] 39. Bad +eh code for global array of classes that's initialized 40. Multiple template defs not detected 41. Error 1736 bitfields don't work correctly with overloading, not ints 42. No warning 167 if declaration after return 43. fail with +eh +Xehdtcount and when inlined c1340101 44. Error 3058 template fn. instantiated with void 45. Static constructor not executed in archive library code 46. Error 5172: Unimplemented CVT and +T error 1555 lvalue required 47. Warning 251 in debug.emit_routines: bad address, const typedef 48. Error 1830 incomplete type in throw specification 49. Warning 116, used but not set, shouldn't appear sometimes 50. Error 4200, 7103 or 1728 with +T (is_const) unexpected base: 138 51. Error 1806 for template function on pointer to member function 52. Reference to a const class is destroyed too soon 53. Error 1073, labels limited to block scope 54. Error 1805 with SC templates on operator<< with & and * operands 55. No debug info for struct if only used in struc1.struct2->field 56. Warning 7004 - after warning 251, on static member 57. Error 5172, Backend Assert with inline function, +T 1588, 1549, 1554 58. Invalid loader fixup needed with +z and auto initializer 59. Error 1586, problems with typedefs used in access qualifier 60. Problems initializing a union in a struct 61. Error 1784 using as template parameter 62. Error 1303 won't allow adjusting the access of a virtual base 63. Error 1580 jump past initializer missing {} in switch 64. Error 5172, Backend Assert ** Unimplemented CVT 65. Error 3058, bus error with inline function 66. Erroneous error 3258 67. Error 1553 with +T +a1 and ?: using delete and destructor 68. Error 1723 with nested typedef in a template 69. 1624 ambiguity in overloading with conversion operator and operator 70. Errors 1682 and 1290 when using nested typedefs in templates 71. Error 1298/1634 points to start of function if error in included file 72. Error 1128 with X.03.74 - compiles with A.03.72 73. Error 1029 on EH symbols ::__eh_Ifoo also error 1034 74. Error 1144 external linkage and called before defined as inline 75. Error 740 regression in c++patch 3.72, _main() is required, main in sl PHSS_6206: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_6206: 1. Error 7004 -g1 debug information may be corrupt, for static function 2. const reference to a const object causes a memory fault 3. Different results with copy constructor 4. Problem with iostreams, X::sync() not called for ostream 5. Error 3058, signal 11 when using typedefs for a function 6. Error 740 on __head when using bad third party libC 7. Error 1144 confusion with binary vs. unary & operator and inline 8. Update customize script so that sl in use gets updated 9. Error 1249 with nested template classes 10. Missing error 1031 if variable declared twice 11. Can't rethrow an exception from within a shared library 12. Taking address of virtual baseclass member in initializer, 4200 & 1521 13. Error 1231 concerning incomplete struct in local scope 14. Error 3079 & 4200, bus error for class name with "__" 15. Error 1502 on typedef specification with enum same as type 16. Error 3226 on function declaration with empty struct 17. Error 1502, enum value in class decl conflicts with other class name 18. Error 4201, inlining sometime fails to change symbol names correctly 19. Error 4200 for initializer (get_simple_initializer: base was 177) 20. Public access to private conversion operator, 1298, 1299, 1645, 1654 21. Error 4200 on complex init (get_ucode_datatype) 141, +T 1588 22. Error 3064, friend of nested class fails, A::B 23. Error 1502, nested typedef confuses the parser 24. Error 1287, can't nest a class within a template class 25. File scope name conflict for static const variables with +T +a1 26. Error 4200 with inheritance hierarchy couldn't find ptr_offset 27. Signals should be disabled so defmap isn't corrupted by ptcomp, 751 28. Dtor count decremented too much after initializing global ref with new 29. Error 4200 instead of 1187 on template with void type 30. Potential runtime error when calling derived destructor explicitly 31. Explicit call to destructor results in compiler core dump 32. Temporary destructed improperly, resulting in eh code to core dump 33. Bus error, alignment trap, while using ** parm 34. Error 3064, name space collision in nested class 35. False warning 160 "defined but not used" if a typedef is used 36. Static initialization of constant class object with cast fails 37. Error 7103 out of bounds field size in EXTRU on template, +T 1000 38. Error 1437, when using nested classes in templates 39. Constant folding of inline parms doesn't truncate for unsigned short 40. Error 1000 with +T with typedef in template 41. Incorrect code generated for conditional with assignment after : 42. c++patch should report error when _main is not called 43. Incorrect result when destructor is inlined, if parm modified inside 44. Unsat when compiling with +eh __eh_Cfoo, first member not defined 45. typedef const name inserts address and not value 46. Error 3058 signal 11 on initialization with function pointers 47. Problem with inheritance when using virtual functions 48. Error 1262 object or pointer missing, if virtual destructor 49. Destructor without matching constructor when using +eh on nested call 50. Error 1421, float operand for token(0) is missing its insertion 51. Alignment trap on struct with doubles passed by value 52. Error 1059 generated when using complex typedef 53. Inline with return, is doing extra return if in main 54. Warning 189 with -g on an empty enum 55. Error 1034 two defs of func with -g & templates on A.03.70 56. Error 3058 signal 11 on initialization 57. Template inline routine lost when -g/+eh is used, ld unsat 58. Error 7103 with +eh and inline function, +T 1588, 1549 59. Error 1231, Call of member function with default argument gets error 60. Bus error if no return statement, destructors not called 61. Unsat when inline fnc used to init default parameter not expanded 62. Error 4200 get_simple_initializer: base was 147 63. Error 1655: compiler can't handle complex type conversions PHSS_5883: The following symptoms correspond to the descriptions in the defect descriptions field for PHSS_5883: 1. error: ambiguous call: f ( int *const ) (1736) 2. Error 1043, const member x needs initializer 3. Error 1566: base class x undefined, recursive templates 4. Warning 283 given because wrong constructor is called non-const vs const 5. Error 1290, qualified name X::destructor not found, if not declared 6. Error 1006 when using typedef for overloaded constructor definitions 7. Error 4200 get_ucode_datatype: unexpected base: 141, +T errors too 8. Error 3058 with +d with +eh in skiptypedefs 9. Error 1264 missing on a delete of a const object 10. Runtime Internal Error: Index out of range on copy constructor 11. Anachro 283, problems with implicit casting and temp objects 12. Trunc results when using typedef of float/double in a cast of literal 13. Protected inheritance isn't transitive 14. Runtime Internal Error: Index out of range on switch with throw 15. Error 1299, can't access protected member 16. Invalid error messages relating to base access declarations 17. The compiler allowed copy constructors to be defined even when not in class 18. Constructors not called in initialization list from archive lib 19. Bad C is generated for inline function containing a "throw" and a label 20. Error 1299 missing when private data member uses protected constructor 21. Incorrect new used when creating a nested class 22. Incorrectly propagating reference initializer, need static temp 23. Error 4200: type_length, undefined variable with +T 24. Static constructor not executed in archive library code 25. Sorry 2014, parameter initialization not working properly 26. Error 4200 (get_simple_initializer: base was 0); error 1521 with +T 27. Sorry 2015, default argument requires construction of temporary 28. +eh core dumps on inline constructor 29. Runtime Internal Error: Index out of range with +eh, inline destructor 30. Possible eh runtime errors on member initialization list 31. Destructor not getting called with +eh, arrays of class, default parm 33. +Xehdtcount detects bad global reference in static ctor 34. Error 3058 with +eh and +T in cleanup_walk_statements 35. Unable to find global defs in template functions 36. Error 7403, 5172 with +eh, inline of delete, +T gives cc errors 37. Throw resulted in an abort due to illegal instruction, branch to 0 38. Program aborts when compiling with +eh and initializing with cast 39. Error 3058 signal 8 on inlined const expression 40. Excess code generated for function static array of classes 41. Error 1169 with typedef a class - identifier and typedef 42. Error 1678 emitted erroneously, dummy argument matches default value 43. Default constructor required in exception class 44. 1624 ambiguity in overloading with conversion operator and operator 45. Conversion operator X&() in assignment loses assignment X = Y 46. Error 3058 signal 11 with nested templates 47. Error 1566 problems when templates refer to each other 48. istream doesn't support NLS for floating point numbers 49. Error 3135 on global reference with +eh 50. Abort at runtime when +eh range errors 51. Program aborts when a throw is executed 52. Bad code generated with +O2 with double and ? 53. Problem with +O2 and arrays of structs with float 54. optimizer problem with array of struct 55. Program aborting at runtime with invalid fixup Defect Description: PHSS_7498: 1. The +pti option will allow a file with the contents: @all_list See the HP C++ Troubleshooting Notes for more details. 2. Error 3173 with nested types in templates. 3. Errors 1437 and 1249 with nested classes in templates. 4. Errors 1682 and 1290 with templates with nested classes. 5. malloc'ed memory is not freed by path_expand_Path_ATTLC() in STDCOMP. 6. Error 1128 with nested types in templates. 7. In compiler mode, static constructor not executed in archive library code for const items. 8. Error 3263 generated template instance not unique with templates. 9. Error 1299, access violation, not honoring friend 10. No compile error is issued if path with return is not executed. 11. In compiler mode, a misaligned data access can result if pointer arithmetic is used to step through an array of shorts, if the pointer is a structure member. 12. No syntax error message is issued for a trailing comma in a parameter list. 13. Internal error: undefined label - (7403) occurs when taking the address of an assignment operator, where the assignment operator is compiler generated in a derived class. 14. Error 1570 should be given when defining an array of abstract classes. 15. Error 5723 NSYM type undefined may occur when optimizing when using a parameter what has a class with const data members. 16. The pxdb message: Can't link template expansion, can occur if using forward template definitions. 17. The problems have to do with nested types/classes which were not implemented fully. 18. Error 1723 with nested types in templates. 19. An enum def inside a class template gets "declared" by the compiler thereby causing problems later on when instantiating the template. 20. Use of long double with +a0 gives warning 213 implying that it was changed to double. This is not completely true in compiler nor translator mode. It both modes the debug information is still long double. In compiler mode the precision is just double. For translator mode, the class sizes and "this" pointer adjustments assume long double sizes. 21. The CC manpage was not compressed for the A.03.75 patch release, PHSS_6468, but was installed into a compressed directory. 22. Error 1299 cannot access a protected member of a template class occurs from a derived template class when using +eh. 23. No debug info for classes is emitted by the compiler if only pointers are used and those pointer are only used to call member functions. 24. Error 5705 Ustack underflow occurs when passing a NULL pointer to an inline function that that function dereferences it. inline void dick(int *p) { int a=p[1];} inline void rick(int *p) { int *a=&p[1];} void main() { dick(0); // fails with 5705 rick(0); // fails with 5705 } Note that this program if compiled is illegal since dick() is referencing a NULL pointer. The call to rick() is legal. 25. hpc++ incorrectly accepted static class X {}; despite the fact that ARM 7.1.1 "Storage Class Specifiers" indicates that static and extern can be applied only to objects, functions, and anonymous unions -- and the annotations explicitly indicate that the above is illegal. 26. Error 1736 ambiguous call occurs when passing an enum to an overloaded function that takes long long. void dick(int); void dick(long); #ifdef _INCLUDE_LONGLONG void dick(long long); #endif enum dick { a=1 } y=a; void main() { dick(0); #ifdef WORK dick((int)a); dick((int)y); #else dick(a); dick(y); #endif } 27. The following error appears: CC: "prog.C", line 12: internal error: (code generation) get_simple_initializer : base was 81 (4200) It occurs on a static template class member initialization, using ?:. 28. The following program compiled with +T gets a 3083 error, without +T a 4200 internal error: CC: internal error: (code generation) get_ucode_datatype: unexpected base: 0 (4200) template class foo { T* pObj; void (T::*pMem)(); public: foo(T* pObj_, void (T::*pMem_)()): pObj(pObj_), pMem(pMem_) {} void go() {(pObj->*pMem)();} }; class bar { foo afoo; ... 29. Compiler did not support template arguments as base classes for the templates: template class A : public T { }; 30. Warning 268 is incorrectly given for any constructor with only one reference parameter. Not just for copy constructors. Also the warning could be given more than once if a chain of typedefs are used. 31. 64-bit integer (long long) data type not accepted by C++ compiler. 32. Error 1231 with nested classes in templates. 33. The syntax, operator struct sigaction, is not accepted by the compiler for the case of using . "struct" is needed because there is a function sigaction(). 34. Various errors occur when using operator functions inline in templates, Error 1637 for operator(). A similar error 1634 for operator[]. 35. Problem is in the instantiation mechanism of HPC++. void myClass::ArrayStuff() does get instantiated, replacing "T" with "double". But ArrayTemplate::DimensionError remains the class nested inside ArrayTemplate. 36. No message is issued when exceeding the limit of the offset of "this" pointers when dealing with base classes. The limit is 32K. 37. When extracting a double or float from the end of an istrstream and then using the ws manipulator, the failbit is set. instr >> d >> ws; 38. Error 1285 when using typedef with same name as class. 39. The wrong template function was being instantiated because an inline template function appeared to be the first one in the instantiation file. 40. Error 1437 when using class scope enum type as a template argument. 41. The man page for sma is empty. 42. Various warnings, 285 and pxdb messages occur when illegally using template classes that begin with "__", when generating debug info. 43. Error 1204 ++ of void* when using typedef from a template 44. c++ptlink was creating filenames longer than 255 characters. 45. Invalid loader fixup when using complex auto initializer with a struct or a union. 46. Initialization of anonymous union wipes out other members in a struct. 47. In certain situations, the compiler did not handle correctly casting of a pointer to derived class to a pointer to virtual base class when the hierarchy of multiple inheritance was complex. 48. Use of -g and +T may cause c++merge to create object files with incorrect permissions, depending on the umask setting. For example, 27. 49. Warning 188, unable to emit debug info correctly, debug.emit_type_entry: bad base: token(141) type:, occurs for template class operator->. Only XDB's lft and b template::operator-> fails. 50. In the A.03.72 HP C++ release, the A.03.65 version of lib++.a was accidentally shipped. PHSS_6470: 1. The following program incorrectly generated the compiler error 1772: template class Set {}; class a_c { void Set(); }; 2. A program got three errors: The command "CC file.c" generates INTERNAL ERROR >>> CC: "filC", line ..: internal error: (function: kENUMSET::IsMbr(void)) Missing LAB for label (5169) The command "CC +T file.c" generates C-compiler-error >>> cc: "wick.C", line ..: error 1900: Undefined label: "funcexitlabel". The command "CC -DBOOL file.c" generates several correct error messages, but then the compiler hangs. 3. Template expansion was not able to instantiate a const version of a template function when a non-const was called prior to it. The problem will only occur when there is a reference type in formal parameters and a pointer in actual parameters for a template function. 4. There was no access checking done on types when they were used, and when they were nested in a class. 5. If the following illegal syntax is used then error 4201 is generated instead of: pointer to member function not called (1398) internal error: Unimplemented node in routine ucode_expr (base MEMPTR) (4201) tag ocu; void (tag::*act)(); act=tag::mb; ocu.*act; // This line cause the compiler error 4201 6. Overloading resolution for functions was handled incorrectly when a template is in a base. 7. The compiler did not detect that a class name had been reused. 8. In sequence of ADDROF and DEREF operations on a constant zero, the ucode generation omits a load of the constant 0 on the stack. Thus, generating ucode underflow error. 9. Rogue wave did not compile properly because of compiler errors. 10. Errors were sometimes not caught when templates existed earlier in the program. 11. If a nested class ended in an "_" then the compiler got a stack overflow in trying to get to the base class. 12. When there is an implicit forward declaration of a template function and the definition of the function is seen, the compiler matched even non exact forward declarations. 13. The compiler did not handle gotos properly while in +eh mode. 14. The declaration of String_var::operator String_ptr&(); 15. The compiler was trying to take address of a function; which is not an lvalue. 16. If the code after a case label contains a block with a declaration for a variable with a constructor, and there is a "break" within the block, the message about "statement not reached" (actually talking about the call to the destructor for the local variable) pointed to the wrong line (usually the first statement after the end of the block). This warning only occurs with +T and -Wb,+w1. 17. cfront had many problems handling class members of type "static anonymous union". In particular, it gives spurious compilation errors on certain uses of such members, and silently generates bad C code in the case when referring to the static anonymous union member of an object of that type. 18. CC did not issue a warning for the lack of anything "public" for base class of a struct. 19. CC issued "sorry, not implemented: general initializer in initializer list (2012)" when using a const pointer as an initializer for an array of pointers. 20. The compiler gave an error when applying an operator function to the result of the (?:) statement. 21. If an integer constant, postfixed with 'L' or 'l' does not fit as a "long" integer, its type must be converted to "unsigned long". cfront did not do this. 22. A misleading error was given when a destructor is specified with a leading class-name qualifier. 23. The compiler gave an internal error "char constant too long" when the number of hexadecimal digits in a character constant was preceded by many zeros.. 24. Comma expressions in condition of "while" were not necessarily executed completely -- only the last comma-separated element. 25. An incorrect "Duplicate labels" error was issued when labels and goto statements were back to back. 26. The compiler did not issue an error for an illegal program that redefined an identifier in an enum. 27. The error issued for "void operator typedef();" was not very descriptive. 28. When inlining a copy constructor, under certain cases, HPC++ was trying to generate code from incorrect ucode. 29. Using +eh with nested classes may produces errors like the following. cc error message 1588 occurs using +T: error 1588: "__0__B0008" undefined When just using +eh and compiler mode: CC internal error: undefined label - (7403) When using +eh and +d: CC: internal error: (code generation) element_size: unexpected base: 5 (4200) 30. The offsets for the fields in a NSYM were not the same for anonymous unions and named unions. 31. Error 5172 may occur when using +eh and functions are inlined in several other functions. 32. The compiler was generating bad code for the ? : construct when the type of the variables involved are function pointers. This resulted in an internal error. 33. An incorrect warning was given when compiling a static or extern typedef initializer combo with +T and +a1. 34. C++ does not completely follow ANSI C rules when the +a1 flag is passed. It widens floats to doubles in arithmetic operation. Even though the ANSI C++ standard allows this, it slows the program down. 35. Incorrect code generation may occurred when using nested news. 36. An incorrect error was issued when the underlying type of a bitfield is not used in type comparison when doing the assignment. 37. Construction / destruction of temporaries is unbalanced for the expression: left = "" + right; 38. An exception handling range error occurred because new was being called in an assignment on an array of zero elements. 39. Bad +eh code for global array of classes that's initialized. 40. The compiler allowed you to define a template twice. 41. In overload resolution, the type of a bitfield expression must be coverted to its underlying base type and it was not. 42. The compiler did not issue a warning that a function with a return type could get all the way to the end without returning a value. 43. When inlining, the value of _eh_dt_count was not restored correctly after call a to vec_new is made. 44. The compiler cannot handle args of type void and it needed to get flagged as an error. 45. When a static object is being initialized via a default constructor, it needed to be "extern data", instead of "undef common". 46. A function is not an lvalue so its address can not be taken for a reference type conversion. 47. The compiler tried to generate debug info for const variables which are not generated because they are not needed. 48. A program with a throw and no catch incorrectly generates compile time error 1830. 49. cfront did not remember that a field of a structure is set. 50. When trying to dereference an incomplete class object an error may occur. 51. The compiler incorrectly issued error 1806 for template function on a pointer to a member function. 52. Destructors were not being called in the correct order when they were bound to a reference variable. 53. The compiler optimized out "if (0)" code even if it contained a label that could be jumped to later. 54. The compiler incorrectly gave error 1805 when using the List_of_p template. 55. Debug information was not generated correctly for a struct (struct2) if it was only used as follows: struc1.struct2->field. 56. Warning 251 may occur when using -g. 57. Error 5172 may occur when using inline functions. 58. An Invalid loader fixup error message occurred when compiling with +z and using an initializer for an automatic aggregate and at least one of the values is an address. 59. Error 1586, problems with typedefs used in access qualifier. 60. When initializing a struct of 3 elements, and element 2 is a union, if you initialize a structure with {1,1,1} the first element of the structure gets the first one and the second element, the union, got two. 61. ptlink did not generate a correct instantiation file if the first template argument is void. It gots error 1784. 62. The compiler thought that there were two instances of Root::r(), when it tries to adjust access to Root::r in the derived class "Sub". 63. Error 1580 occurs if a declaration occurs in a switch case without using {}. 64. When trying to cast a class object to its pointer type an incomplete tree was being passed to the code generator. Must add "&" to compensate for use of constructor call. 65. The compiler dumps core when generating INLINE code for dereferencing of a NULL pointer. 66. 3258 generated template instantiation name %s was not unique. 67. Compiling the following with +T and +a1 generates a C error: error 1553: Types incompatible in conditional expression. struct S { S(); virtual ~S(); }; void mf(S *objp, int free) { (free) ? delete objp : objp->S::~S(); } 68. Some of the instantiations inside a template class do not occur when the template class is instantiated. 69. The compiler made an extra call to operator<< 70. There was a compiler problem when a declaration of a nested typedef defining a class with parametrized type and use of this typedef name as the scope identifier. 71. The location of the symbol being declared was used when issuing a diagnostic. The location of the statement causing the error should be used instead. 73. The following two errors occurred when using templates and +eh. Error 1034 two definitions of ::__eh_Ifoo Error: ::__eh_Cfoo__pt__3_Pv declared as both static and extern (1029) 74. If your program defines the "delete" operator as an inline function and you compile with +eh you get the error: CC: "tmp.c", line 3: error: operator delete() declared with external linkage and called before defined as inline (1144) 75. c++patch did not consider the possibility of 'main' being present in a shared library. So when generating an a.out using a shared lib which has main defined in the shared lib, c++patch should just make sure that main is present. PHSS_6206: 1. Compiling a static function with -g1 may produce warning 7004. 2. The compiler generated incorrect code for const reference to a const object 3. The presence of a copy constructor in a base class causes an initializer for the copy constructor in a derived class to work differently. 4. Problem with iostreams, X::sync() not called from ostream, etc. X is a class derived from ostream. 5. Use of a typedef name for naming a function type may cause error 3058 signal 11. If it did not abort, errors like the following may occur: error: sizeof(function) (1535) error: __I0002() declared auto (1122) 6. Changed the error message to make it less confusing. 7. When overload resolution logic tries to decide between the builtin & operator and the test::operator&(const test&) function, it sets the in_use flag of the latter function even though this function is dropped later on in favor of the builtin operator. So, to the compiler, this function is "used" even though it is not; and thus the error message. 8. The customize script now can replace busy runtime libraries. 9. The compiler was pointing to the wrong data structure for a nested class. 10. Problem is the the variable burp is optimized away and therefore, the 2nd declaration does not see the first declaration. 11. A coredump will occur when using +eh in a shared library in compiler mode. This will occur for any function that has a try block that does not enclose the throw or the call to the function that does a throw. 12. Initializing a static variable with the address of a member of a virtual base class generates incorrect C code. CC: internal error: (code generation) MDOT_offset: unexpected MDOT expr i1 value 1 (4200) With +T: cc: error 1521: Incorrect initialization. 13. If a struct tag that has never been declared previously is implicitly declared in a function scope (by using it in a pointer declaration), and then subsequently defined inside the same function, cfront does not correctly match up the tag declaration with the tag definition. error: no standard conversion of struct xx(local to foo())* to struct xx* (1231) 14. Illegally using 2 underscores in a function name can cause the compiler to abort. With: internal error: (code generation) classdef::find_inherited_base: couldn't find base class (4200) Or with +T: internal error: 0-> expression::print() (3079) 15. The C++ compiler did not conform to Section 7.1.3 in the ARM which states that "a typedef may be used to redefine a name to refer to the type to which it already refers - even in the scope where the type was originally declared." 16. Error 3226 on function declaration with empty struct The compiler incorrectly gave the following error: internal error: local class A missing or bad function name? (3226) When compiling this program: void foo () { void foo1(struct A{}); } 17. The enum declared in the enumerated type conflicted with the class declaration that is not in the scope of class B. 18. EH bug caused the code to compile unsuccessfully. 19. cfront generated incorrect code when an initializer is the address of virtual base class. Such initializations must go into the __sti function and not be done at global scope. 20. A private conversion operator could be accessed from outside the class. 21. A complex initialization like the following produced error 4200. IntvlTime slew=(IntvlTime)(((DbShort &) (*i_entryCfg)[2]).getValue()); 22. An error was issued when trying to make a friend of a nested class. 23. The HP C++ compiler gave a syntax error (1502) when you used a typedef to define another typedef for a pointer inside parentheses and then redefine that same typedef inside a class. 24. C++ could not find members of a class, or struct, when the class was defined within a template class. 25. When using +T the compiler generated a global declaration of a locally declared static const integer variable. 26. The compiler generated code to convert the most derived class to the virtual base class through a non-existing field. 27. When ptcomp was aborted during a critical period while writing the defmap file, it was possible that the file was corrupted and the next use got error 751. 28. The global destructor count was decremented too much after globals were constructed. It resulted in a runtime error during the throw. 29. A program generated an internal error. 30. Calling a derived destructor explicitly through a reference caused a runtime error on throw. 31. The compiler core dumped when compiling a program with +eh 32. Compiled code core dumped because of either the destruction of cfront-generated temporary or because of mishandling the returning an object. 33. An alignment trap occurred on non word aligned and sized structs. 34. The compiler generated a name space collision error for a nested class. 35. The compiler issued a 'defined but not used' message when using a typedef. 36. The compiler generated incorrect code for the initialization: static const UInt64 Bad = (UInt64) -1; And code generated destroyed a temporary; instead of the variable "Bad". 37. Error 7103 occurred when an object was being created via an explicit constructor call when no such constructor was specified and the compiler had not generated a default one. 38. Template code caused the compiler to generate error message 1437 39. Inlining caused a constant to replace the formal argument in the body of the inlined function, the type of the formal argument was unsigned short but the substituted constant was an int. This resulted in incorrect constant folding of (unsigned short)(-1) <= 59. 40. Use of a typedef from a template base class give error 1000 when compiling with +T. 41. The compiler gave stronger binding for ":" than "=". So, exp ? exp : exp = rhs was evaluated as: (exp ? exp : exp) = rhs instead of exp ? exp : (exp=rhs). 42. c++patch did not generate an error when it did not find a reference to _main in the program. 43. Incorrect results occurred if the destructor was inlined and it modified the parameter to the delete operator. 44. Unsat when compiling with +eh __eh_Cfoo, first member not defined. 45. When using a typedef with a const as an array initializer, it inserted the address and not its value. 46. The compiler gave signal 11 for multi-dimensional array initialization with function pointers. 47. There was an incorrect computation of "this" for a complex inheritance hierarchy involving nested virtual bases. 48. Compiler error 1262, "object or pointer missing", occurred when a class had a virtual destructor. 49. A destructor was called without a matching constructor call when using +eh on a nested call. 50. Error 1421, float operand for !, was missing its insertion when a floating point variable was used for the size of an array of a field size. It printed "token(0)" instead. 51. Passing a struct that contained doubles by value and then passing that or the double fields by reference or pointer caused an alignment trap. 52. The compiler gave an error when the returned value did not match the function return type. 53. An extra return was executed for an inline void function with an explicit return. 54. When compiling an empty enum with -g the compiler issued warning 189. 55. When compiling a program with templates and typedefs and using the options +eh and -g the compiler gave error 1034. 56. The compiler core dumped when compiling with +a1 and doing certain initializations. 57. A template inline routine could not be expanded when -g or -g1 is used. It also also occurred when +eh was used. 58. A function that used a temporary which, when inlined, did not get declared in the function it is inlined. In +T or translation mode, the C compiler complained of undeclared variable. In compiler mode, it got error 7103. 59. The use of default argument expressions that were type-cast to pointer to an object and used in two different functions got an error. 60. A bus error occurred when a return statement was missing at the end of a function. 61. When processing the default argument expressions function inlining for a default expression was turned off, and its declaration was not being generated. 62. The compiler did not properly tokenizes the constructor calls in the member initializer list. 63. The compiler attempted to use a private copy constructor in the course of doing a type conversion. PHSS_5883: 1. The compiler couldn't resolve an ambiguity when trying to pass "int *const" when given the choices "int *" and "const int *". 2. The compiler got confused and gave error 1043, const member x needs initializer occurs on const members where the compiler needs to generate a default copy constructor. 3. The compiler couldn't handle circular template definitions. 4. A program with both a constructor for "int&" and "const int&" that tried to create an object with a constant (like "T x(123)") resolved to the "int&" constructor instead of "const int&". 5. Error 1290 occurred when explicitly calling a compiler generated destructor. 6. When using a typedef in the definition of overloaded constructors you got an error. 7. The following code caused error 4200 in compiler mode and error 1588 in the C compiler. struct X { X(); X(const X&); }; extern X f(); void g() { static X y = f(); } 8. The compiler aborted with error 3058 when using +d with +eh in the function skiptypedefs. 9. No error message was generated when using the delete operator on a const object. The compiler now issues warning 1855. If +p is specified 1855 becomes an error. 10. The compiler had trouble caused by interaction between the elimination of temporaries and eh's lack of understanding of this optimization. 11. When a type conversion function converted to a reference pointer type, there was no need to create the temporary as a formal argument. 12. Under certain circumstances using a typedef for float or double was not equivalent to using the predefined type. 13. The compiler treated protected bases as private. 14. Runtime Internal Error: Index out of range may occur when doing a throw from inside a switch statement. 15. The compiler attempted to generate an assignment function in the derived class and could not do it because the base class's assignment function was protected. 16. Specifying an access declarator for a base class' constructor inside a derived class gave a set of spurious error messages about "expected arguments". 17. C++ incorrectly accepted the following definition B::B(const B&) {} 18. The compiler treated the definition of static members differently if the member was an array. For arrays only tentative definitions were generated. 19. When an inlined function contained a label and a throw statement, and if the function inlines another function containing a throw statement, then in translator mode bad C was generated. 20. The compiler incorrectly allowed non-derived classes to access a protected constructor from another class. 21. The incorrect new was used when creating a nested class. The enclosing class was used instead of the global new. 22. When a reference to an integer member of a class was constructed a local temporary was created to hold the value. The storage allocated for it should have been a static temporary when the object is declared as a file scope static object. 23. Errors occurred when a member function was passed as an argument to a function with an ... argument and the actual argument did not have the ()s. 24. Static constructors were not executed in archive library code when trying to initialize a static member or global with a function call and there were no other uses of the module except for data references. 25. The compiler did not support default parameter initialization to class objects. 26. The cast operation prevents proper evaluation of the reference initializer to an lvalue. 27. Default parameter initialization to class objects was not implemented. 28. +eh core dumped on inline constructors that had a return. 29. The compiler issued a runtime internal error when inlining a destructor that deletes a pointer to an array. 30. An eh runtime error sometimes occurred if an exception was thrown during or after the construction of an object in main(). 31. Use of default constructors with default argument expressions in the construction of an array of objects caused bad eh code. Creating an array of objects without explicit initialization corrupted the exception- handling housekeeping information. As a result, not all objects were destructed when an exception was thrown. 33. Code added to keep track of const/static reference initialization requiring temporary generation of a class type caused a stack trace to be emitted. 34. The elimination of compiler generated temporaries on the eh side of the code mistakenly assumed that it was a "non-symmetric temp". 35. If there was a forward declaration of a template then the symbol table information for the instantiated class was incomplete. 36. An inline expansion resulted in bad C code in translator mode and various errors in compiler mode. 37. A throw from the constructor of a class that inherits from a class with no destructor resulted in a core dump. 38. eh destructor count incorrectly incremented when initializing with cast 39. The compiler aborted with SIGFPE because the unsigned number -1, was too big to convert from a long double to an int. 40. Various internal errors occurred if declaring a static array of classes in a function. It occurred for large array subscripts. 41. A typedef with a nested class defined in it gets an error. 42. When a dummy argument matched the default an error was incorrectly issued. 43. The compiler required a default constructor in rather than automatically generating one. 44. The compiler did not prefer an overloaded operator with standard conversion of its argument over a builtin operator which required user-defined conversion or its operands. 45. When doing an assignment between two classes, e.g. X = Y, the assignment calls the "Y_type::operator const X_type&() const" function but the results never seem to get into X. 46. A core dump was being caused because nodes were incorrectly being copied. 47. Users receive error 1566 when using templates that refer to each other. 48. Inputing a "," as a radix character will fail with istream. 49. Internal Error 3135 sometimes occurred when compiling with +eh when a global reference with an initializer was encountered. 50. +eh problems with functions returning objects and copy constructor 51. Objects or archive libraries compiled with +eh on 9.x releases aborted when linked and run on 10.x. This only occurred for functions with try/catch and only when the throw is executed. 52. Bad code was being generated for in line ternary expressions that result in 64 bit fp value parameters. 53. When compiling with -O using atof() to float in a structure, the first call to atof() did not work correctly. 54. An error was issues when compiling with -O and a function which returns a structure is used in a function call. 55. When compiling with -g and +O0 the compiler was emitting an illegal instruction (LDIL 0x4028b000,31) and causing an invalid fixup error. SR: 1653069732 1653083840 1653084947 1653091934 1653108860 1653119180 1653119271 1653121285 1653121327 1653124834 1653125419 1653129551 1653130898 1653131276 1653132381 4700945428 4701089433 4701089441 4701139444 4701197327 4701199067 4701232124 4701235796 4701241497 4701243931 4701245464 4701246694 4701257220 4701284315 4701287094 4701292474 4701293068 4701293100 4701293878 4701295220 4701295501 4701295519 4701295907 5000708123 5003118059 5003167189 5003203299 5003230631 5003237735 5003246694 5003248997 5003262618 5003266213 4701295410 4701295865 1653133686 5003268797 5003269993 5003269027 1653071233 1653078915 1653094003 1653118141 1653123620 1653126516 1653128199 1653132092 1653134064 1653140285 1653141390 4700931683 4700960740 4700984955 4701019760 4701143396 4701184374 4701188359 4701197301 4701222646 4701264952 4701268755 4701271882 4701280776 4701284513 4701285874 4701292979 4701296004 4701297051 4701297143 4701297150 4701297721 4701298497 4701298711 4701299206 4701299511 4701299917 4701300566 4701301432 4701301440 4701301879 4701302901 5003225912 5003231746 5003233122 5003236687 5003240515 5003241281 5003267732 5003272526 5003276600 5003278051 5003278754 5003279281 5003280370 5003280529 1653068379 4701298844 4701300558 5003127464 4701303024 4701300871 4701298836 1653054197 1653056853 1653066340 1653109785 1653111211 1653122663 1653130948 1653145433 1653145748 1653145797 1653146894 1653147603 1653149351 1653149757 1653149955 4700906339 4700951228 4700984120 4701017632 4701043562 4701135871 4701135889 4701142877 4701149930 4701152884 4701152892 4701178574 4701189159 4701189910 4701203919 4701246215 4701253633 4701256107 4701290437 4701291906 4701292722 4701296772 4701297168 4701298828 4701303586 4701304774 4701304808 4701304972 4701305441 4701306233 4701307256 4701307850 4701308809 5003125948 5003152157 5003163774 5003175315 5003188508 5003189282 5003199778 5003200915 5003213413 5003217729 5003251090 5003271882 5003283549 5003285296 5003288217 5003289447 1653067918 5003259424 4701309393 1653154302 4701310235 4701310359 1653153874 1653154294 4701310011 5003291377 5003297580 4701311159 1653136846 1653145300 1653149336 1653149344 1653149799 1653154294 1653158824 1653163782 1653167437 4701107755 4701156331 4701169649 4701186270 4701187872 4701257212 4701270892 4701293175 4701306555 4701310623 4701313643 4701314096 4701314260 4701316430 4701318295 4701319517 4701321703 5003130690 5003146001 5003162925 5003218974 5003247270 5003259382 5003287631 5003291708 5003294967 5003296467 5003297481 5003298604 5003300723 5003302711 5003304220 5003304436 5003306795 5003309245 5003312173 5003313312 1653166876 1653168096 1653168948 5003316380 Patch Files: /opt/CC/bin/CC /opt/CC/bin/c++filt /opt/CC/contrib/Examples/template_manual_auto/README /opt/CC/contrib/Examples/template_manual_auto/all_templates /opt/CC/contrib/Examples/template_manual_auto/ all_templates.dep /opt/CC/contrib/Examples/template_manual_auto/ all_templates_inc.dep /opt/CC/contrib/Examples/template_manual_auto/main.c /opt/CC/contrib/Examples/template_manual_auto/make_inc_dep /opt/CC/contrib/Examples/template_manual_auto/makefile /opt/CC/contrib/Examples/template_manual_auto/ merge_templates /opt/CC/contrib/Examples/template_manual_auto/pt_cat.c /opt/CC/contrib/Examples/template_manual_auto/stack.c /opt/CC/contrib/Examples/template_manual_auto/stack.h /opt/CC/include/CC/iostream.h /opt/CC/lib/nls/msg/C/CC.cat /opt/CC/lib/nls/msg/C/CC.msgs /opt/CC/lbin/c++patch /opt/CC/lbin/c++ptcomp /opt/CC/lbin/c++ptlink /opt/CC/lbin/cfront /opt/CC/lib/eh/lib++.a /opt/CC/lib/eh/libC.a /opt/CC/lib/eh/libC.ansi.a /opt/CC/lib/lib++.a /opt/CC/newconfig/TecDocs/tools.ascii /opt/CC/newconfig/TecDocs/tools.ps /opt/CC/share/man/man1.Z/CC.1 /opt/langtools/lbin/ucomp.tmp /opt/langtools/lib/nls/msg/C/ucomp.cat what(1) Output: /opt/CC/bin/CC: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/bin/c++filt: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/contrib/Examples/template_manual_auto/README: None /opt/CC/contrib/Examples/template_manual_auto/all_templates: None /opt/CC/contrib/Examples/template_manual_auto/ all_templates.dep: None /opt/CC/contrib/Examples/template_manual_auto/ all_templates_inc.dep: None /opt/CC/contrib/Examples/template_manual_auto/main.c: None /opt/CC/contrib/Examples/template_manual_auto/make_inc_dep: None /opt/CC/contrib/Examples/template_manual_auto/makefile: None /opt/CC/contrib/Examples/template_manual_auto/ merge_templates: None /opt/CC/contrib/Examples/template_manual_auto/pt_cat.c: None /opt/CC/contrib/Examples/template_manual_auto/stack.c: None /opt/CC/contrib/Examples/template_manual_auto/stack.h: None /opt/CC/include/CC/iostream.h: cls4:incl-master/const-headers/iostream.h /opt/CC/lib/nls/msg/C/CC.cat: None /opt/CC/lib/nls/msg/C/CC.msgs: None /opt/CC/lbin/c++patch: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/lbin/c++ptcomp: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/lbin/c++ptlink: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/lbin/cfront: HP C++ HPCPLUSPLUS A.10.22 HP-UX SLLIC/OPTIMIZER UX.10.20.351 (DAVIS): 05/21/96 Ucode Code Generator - UX.10.20.05 (BCK_UX10.DAVIS_9 60521) High Level Optimizer - UX.10.20.960521 (DAVIS) [-DHL O_RELEASE +O3] - 22-May-96.08:16 /opt/CC/lib/eh/lib++.a: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/lib/eh/libC.a: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/lib/eh/libC.ansi.a: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/lib/lib++.a: HP C++ HPCPLUSPLUS A.10.22 /opt/CC/newconfig/TecDocs/tools.ascii: None /opt/CC/newconfig/TecDocs/tools.ps: None /opt/CC/share/man/man1.Z/CC.1: None /opt/langtools/lbin/ucomp.tmp: HP-UX UCOMP UX.10.20.108 (DAVIS): 05/21/96 HP-UX SLLIC/OPTIMIZER UX.10.20.351 (DAVIS): 05/21/96 Ucode Code Generator - UX.10.20.05 (BCK_UX10.DAVIS_9 60521) High Level Optimizer - UX.10.20.960521 (DAVIS) [-DHL O_RELEASE +O3] - 22-May-96.08:16 /usr/lib/libc: $Revision: 76.3 $ /opt/langtools/lib/nls/msg/C/ucomp.cat: None cksum(1) Output: 503008798 90112 /opt/CC/bin/CC 4277669678 28672 /opt/CC/bin/c++filt 3822263051 1155 /opt/CC/contrib/Examples/ template_manual_auto/README 2765839016 5 /opt/CC/contrib/Examples/template_manual_auto/ all_templates 4294967295 0 /opt/CC/contrib/Examples/template_manual_auto/ all_templates.dep 4294967295 0 /opt/CC/contrib/Examples/template_manual_auto/ all_templates_inc.dep 1221038285 129 /opt/CC/contrib/Examples/ template_manual_auto/main.c 623693447 309 /opt/CC/contrib/Examples/template_manual_auto/ make_inc_dep 3957220605 1039 /opt/CC/contrib/Examples/ template_manual_auto/makefile 450999081 676 /opt/CC/contrib/Examples/template_manual_auto/ merge_templates 4182102074 3186 /opt/CC/contrib/Examples/ template_manual_auto/pt_cat.c 1214346554 50 /opt/CC/contrib/Examples/template_manual_auto/ stack.c 3140977463 73 /opt/CC/contrib/Examples/template_manual_auto/ stack.h 507924783 21025 /opt/CC/include/CC/iostream.h 1334729641 73728 /opt/CC/lbin/c++patch 1952290940 36864 /opt/CC/lbin/c++ptcomp 393524948 81920 /opt/CC/lbin/c++ptlink 3100396471 7630848 /opt/CC/lbin/cfront 2330922881 938852 /opt/CC/lib/eh/lib++.a 1914124571 271816 /opt/CC/lib/eh/libC.a 4247419951 271896 /opt/CC/lib/eh/libC.ansi.a 4167846142 513964 /opt/CC/lib/lib++.a 132875107 115038 /opt/CC/lib/nls/msg/C/CC.cat 458065851 291002 /opt/CC/lib/nls/msg/C/CC.msgs 1928722143 51286 /opt/CC/newconfig/TecDocs/tools.ascii 3793644878 294699 /opt/CC/newconfig/TecDocs/tools.ps 2069938988 18670 /opt/CC/share/man/man1.Z/CC.1 3200723418 5144576 /opt/langtools/lbin/ucomp.tmp 2288211346 35513 /opt/langtools/lib/nls/msg/C/ucomp.cat Patch Conflicts: None Patch Dependencies: s700: 10.01: PHSS_7497 PHSS_6246 PHSS_7505 PHSS_7452 PHSS_7731 s700: 10.10: PHSS_7497 PHSS_7505 PHSS_7452 PHSS_7731 s800: 10.01: PHSS_7497 PHSS_6246 PHSS_7505 PHSS_7452 PHSS_7731 s800: 10.10: PHSS_7497 PHSS_7505 PHSS_7452 PHSS_7731 Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_5883 PHSS_6206 PHSS_6470 Equivalent Patches: PHSS_7496: s700: 9.01 9.03 9.05 9.07 s800: 9.00 9.04 Patch Package Size: 15640 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_7498 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHSS_7498.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_7498.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. The cluster clients must be shut down as described in step 5b. By default swinstall will archive the original software in /var/adm/sw/patch/PHSS_7498. 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_7498.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_7498.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None