Patch-ID# 107390-19 Keywords: C++ CC 5.0 SC5.0 sparcv9 Synopsis: C++ 5.0: Patch for 64-bit C++ 5.0 compiler Date: Oct/30/2002 Install Requirements: None Solaris Release: 2.5.1 2.6 7 8 SunOS Release: 5.5.1 5.6 5.7 5.8 Unbundled Product: C++ Unbundled Release: 5.0 Xref: Topic: Relevant Architectures: sparc BugId's fixed with this patch: 1189572 1261797 4005207 4015526 4046014 4048365 4049673 4058012 4068365 4071720 4080243 4081581 4085488 4105648 4151421 4176535 4180936 4181400 4183437 4184235 4185570 4187277 4187728 4193618 4194203 4194641 4195218 4195853 4196630 4197057 4197753 4197789 4199857 4200002 4200973 4205586 4206657 4207232 4216319 4223326 4224020 4224951 4225998 4226134 4227111 4227577 4227692 4229612 4230183 4232284 4232826 4233721 4233998 4234362 4234483 4234544 4234617 4234938 4235240 4235362 4235978 4236045 4236761 4236897 4237873 4237903 4237957 4238767 4238951 4239488 4240772 4240862 4242930 4243133 4243504 4243821 4244475 4244513 4245607 4245658 4246014 4246595 4246601 4246603 4246609 4246610 4246643 4246648 4246649 4246650 4246654 4246658 4246665 4246673 4246944 4247636 4247650 4248010 4249167 4249808 4250252 4250946 4251207 4251248 4251261 4252098 4253677 4254380 4254406 4254667 4256222 4256604 4257032 4257840 4258157 4259812 4260459 4260505 4261686 4262944 4263363 4263364 4263370 4266306 4266574 4268029 4270571 4270710 4271269 4271402 4272071 4272179 4272719 4273054 4274063 4274127 4274418 4275374 4276318 4277042 4278297 4279882 4280541 4280725 4281127 4281785 4282311 4283511 4283808 4285450 4286388 4286857 4287167 4287895 4288336 4288349 4289626 4290257 4290796 4293913 4294185 4294206 4294209 4294212 4294947 4295431 4295447 4295739 4296357 4296563 4296926 4296927 4297737 4297904 4299920 4301087 4301536 4303129 4304263 4305295 4306581 4306728 4308521 4309593 4309617 4313252 4313828 4314671 4316990 4317049 4318615 4319391 4320759 4322743 4337429 4347229 4347423 4356420 4358092 4367632 4368049 4368974 4371609 4373173 4376786 4380359 4383064 4384942 4388120 4391514 4395194 4399456 4400676 4414478 4436982 4445602 4458714 4483391 4487348 4488599 4502514 4502968 4510146 4519244 4520401 4522918 4522954 4589227 4637199 4639493 4669810 4702100 4731742 Changes incorporated in this version: 4519244 4702100 4731742 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: 107311-19 or greater 107357-10 or greater Obsoleted by: Files included with this patch: /SUNWspro/SC5.0/lib/rw7/v9/libp/librwtool.a /SUNWspro/SC5.0/lib/rw7/v9/librwtool.a /SUNWspro/SC5.0/lib/rw7/v9/librwtool.so.2 /SUNWspro/SC5.0/lib/rw7/v9/librwtool_dbg.a /SUNWspro/SC5.0/lib/v9/libCrun.a /SUNWspro/SC5.0/lib/v9/libCstd.a /SUNWspro/SC5.0/lib/v9/libdemangle.a /SUNWspro/SC5.0/lib/v9/libgc.a /SUNWspro/SC5.0/lib/v9/libgc.so.1 /SUNWspro/SC5.0/lib/v9/libgc_dbg.a /SUNWspro/SC5.0/lib/v9/libgc_dbg.so.1 /SUNWspro/SC5.0/lib/v9/libiostream.a /SUNWspro/SC5.0/lib/v9/libp/libCrun.a /SUNWspro/SC5.0/lib/v9/libp/libCstd.a /SUNWspro/SC5.0/lib/v9/libp/libdemangle.a /SUNWspro/SC5.0/lib/v9/libp/libgc.a /SUNWspro/SC5.0/lib/v9/libp/libgc_dbg.a Problem Description: 4519244 C++ 5.2/5.3 does not write/interpret SunWS_cache/CC_state correctly. 4702100 rui error in std::__iterator_category 4731742 valarray specialization, 5.0p13 vs. 5.0p17 (from 107390-18) 4669810 Template cache not updated correctly. (from 107390-17) 4271402 typeid() leaks memory 4445602 WorkShop 5.0 C++ compiler passes stack objects incorrectly with -g0 4488599 incremental compiling fails on template with inline function 4520401 compiler generates over optimized code for constructor of temporary object 4522918 workshop 5.0 complaining about undefined symbols. 4589227 phys. read() is suboptimal in ifstream::getline()/libC 4637199 Standard lib headers inclusion gives different FILE def on Solaris 2.5.1 and 2.6 4639493 C++ 5.0 : RTTI of templated class yields unresolved symbols (from 107390-16) 4522954 Error: Cannot cast from long to const long&. (from 107390-15) 4483391 inlining problem w/ 107311-13 when using different constructors and inheritance 4487348 C++ 5.0: Compiled code with multiple inheritance and virtual functions seg fault 4502514 107311-14 BAD: does not install correctly if no previous revision is installed. 4502968 value parameter not destroyed when function exits via exception 4510146 SC 5.0, reports C compiler errors in "time.h", after installation of 107311-14 (from 107390-14) 4399456 compiler using incorrect operator definition 4458714 C++ 5.0 calls an invalid constructor (from 107390-13) 4380359 STL std::find algorithm requires != operator 4383064 STL vector::resize returns uninitialized memory 4384942 string::npos missing from libCstd 4388120 Use of a remote directory causes template link time problems 4391514 change in input file name changes ccfe exception processing 4395194 Failure to instantiate RTTI symbols 4400676 exception not caught due to weak RTTI reference to definition in library 4414478 Symbolic links cause symbols to be left out of libraries 4436982 C++ 5.0 list<>::merge() mismatch argument in list.cc (__x instead of x) (from 107390-12) 4253677 RTTI of templated class yields unresolved symbols 4337429 Template instantiation problem with C++ 5.0 4347229 wstring::find_first_not_of() gives a wrong value 4356420 template overloading ambiguity error 4358092 demangler returns 0 size for unqual_name in abi1 4368049 Missing member function: list::remove_if not fixed with patch 107311-11 4368974 string assignment after update gives wrong answer 4367632 Virtual function code cores after installation of 107311-11 4376786 Regression in multiple inheritance in patch 107311-11. 4371609 Compiler loops on default parameter passed by value 4373173 compiler/linker cannot resolve an rtti symbol when using typeid() nobugid fix memory leak introduced by previous fix to bug 4296357 (from 107390-11) 4071720 Definition of static data member of class template is not recognised. 4200973 std::string::npos not treated as integer constant 4238951 pointer value prints without leading 0x in standard mode 4240772 Compiler erroneously resolving to the boolean constructor 4246595 denorm_min returns negative value 4246601 basic_string constructor core dumps 4246603 bitset.count() does not work when its size is not 8bit-multiple 4246610 time_get::do_get_date core dumps 4246643 std::message_base::catalog should be int 4246648 basic_string::find_last_of does not work 4246649 set::difference_type should be of *signed* integral type 4246650 time_put::put core dumps 4246654 basic_istream::get does not call setstate(failbit) 4246658 basic_ifstream does not set failbit while closing unopened stream 4246665 header is not self-contained 4246673 valarray::shift core dumps on negative parameter 4263364 C++ 5.0 Compiler, Problem with the mechanisms for multiple inheritance 4263370 Incorrect declaration of __rb_tree::equal_range() in 4270710 128 character limit on initial output to basic_ostream 4274127 C++ 5.0 cannot compile if files are mounted from an SGI NFS server 4286388 Empty vector SEGVs when asked to erase empty vector from begin() 4287167 inputting into 'string' object loses whitesapce character 4287895 ccfe uses undefined labels in dead code of nested catch-handler 4296357 overloaded vector new operator is not called 4301087 problem with replacing string data with empty string 4305295 assertion failure in ftemplate.cc 4308521 str(mystring) function in ostringstream doesn't work 4309593 compiler generates an assertion error: (../links/bindcall.cc, line 852) 4313252 missing vtable for template code with -instances=explicit 4313828 ostrstream constructor corrupts memory 4314671 Program with complex class hierarchy core dumps 4316990 digits10 is not usable as an integral constant 4317049 Set missing implicit conversion between const_iterator and iterator 4318615 Missing member function: list::remove_if 4319391 std::ws is not found w/o std:: qualfier 4320759 C++ 5.0 compiler dumps core if nested try and catch blocks are used 4322743 object size for operator delete is invalid when thrown in constructor 4347423 Build 5.0 libCstd.a with -KPIC (from 107390-10) 4015526 Compiler improperly mangles anonymous enumeration types. 4046014 Dynamic initializer for struct gives bad data in inline member function 4048365 Problem with inlining a function 4085488 C++ 4.2: destructor not called when constructor throws exception 4151421 fails to destruct a temporary after exception 4180936 fails to destruct a temporary after exception 4194203 Regression in test E4151421 (?) : Object not destructed during exception cleanup 4205586 C++ compiler hangs 4224020 Miscompile of inline function 4234544 C++ exception handling causing Bus Error 4236897 c++ exception handling calls destructors incorrectly 4239488 cv-qualifier inconsistently included in function signature 4242930 Destructor not called in order for local variable inside a destructor 4250252 In C++ 5.0, Exception handler incorrect in inner-block and inlined constructors 4272179 member dtor not called when ctor exits via exception and inlining is off 4272719 ld error with -instance=semiexplicit 4276318 compiler produces a const reference in the mangling 4277042 memory leaks in C++ library (libCstd) 4279882 Incorrect logical operator evaluation in non-optimized programs 4280725 typedefs have an impact on mangled name with C++ 5.0 4281127 C++ 5.0 ccfe hung while compiling inline template function 4282311 standard stream filebufs destroyed prematurely 4285450 memory leak when destructors are called more than once in C++ 5.0 compilers. 4288336 explicit template specializations cause link error 4288349 problem with inlining and ?: operator 4290796 (undefined symbol) with use of -instances=semiexplicit 4293913 using -g produce signal 11 during compiling 4294185 array data member not cleaned up when throw from a constructor 4294206 Mangling/link error when using typedefs 4294209 Throwing an exception causes destructor to be called for non-constructed object 4294212 Exception thrown from constructor not destroying constructed data members 4294947 if(0) branch accessed in nested if-clause of inline fct 4295431 inconsistent ABI-1 name mangling of const arrays 4295447 Exception event incorrectly inlined in if-statement 4295739 CClink dumps core 4296563 inline operator delete causes compilation error 4297737 C++ instances=static fails to compile to binary 4297904 compiler dies with signal 10 4299920 problem with cout/cin used in shared library built with -Bsymbolic 4301536 program using istrstream::putback() coredumps with -library=iostream 4303129 ccfe front end goes into an infinite loop 4304263 C++ generates incorrect reference 4306581 incorrect inlining for non-symmetric if statements 4306728 The 107311-09 patch broke the CCadmin -info 4309617 errors when trying to use make_pair template members (from 107390-09) 4049673 c++filt does not close files 4068365 Bad message from C++ filt 4081581 cplus_demangle doesn't null terminate when returning DEMANGLE_ENAME 4266574 quick demangler returns DEM_ERR_RESERVED 4274063 setiosflags missing from 4283511 conversion function not properly reconized resulting in iilegal operation error 4283808 can't compile: can't compute value of an expression involving an external symbol 4286857 cast operator declared in the template class should allow automatic cast 4289626 C++ prototypes for wcschr/wcspbrk/wcsrchr/wcsstr/wmemchr missing in C++ header 4296926 setfill missing in 4296927 streampos missing in (from 107390-08) 4234938 Increment operator breaks when using SC5.0 C++ with -g option 4290257 Unexpected op in yExpandV9() in sparc.c 4176535 5.0 compiler incorrectly reports overload ambiguity 4184235 memdb cannot find libgc_dbg.so 4226134 "explicit" keyword ignored 4230183 compiler failed with "Error: Non-const function XXX() called for const object." 4235362 uncaught_exception returns true when no exception thrown 4246944 ccfe dumps core when no more licenses are avilable 4256222 5.0 implementation of Standard regarding access control 4256604 CC -compat=4 Template Function Specialization linking problem 4257032 program using vector.push_back() coredumps 4266306 C++ program no longer reads from fstream after std::getline() reads empty line 4268029 C++ 5.0 errors out on a constant expression 4271269 bug in C++ 5.0 deque::erase() stl implementation 4272071 Problem with default template argument used in a namespace 4273054 pthread_exit() when called from a c++ function, empty throw list, dumps core 4274418 libCstd should be built with the macro _RWSTD_NO_TEST_AND_SET defined 4275374 classes derived from structures do not copy construct or assign correctly 4278297 tanh in libcomplex is not returning correct results 4280541 getline tries to read an extra character 4281785 C++ 5.0 FCS compiler crashes w/ assertion when compiled for v9 (from 107390-07) 4187728 some dbx demangler query functions are incorrect for operators in ABI 1 4207232 Intantiation of template does not happen for second run 4227111 SC5.0 C++ fbe: cant compute value of an expression involving an external symbol 4240862 failure to diagnose qualified member declarations in templates 4243133 SC5,0 C++: Undefined symbol __SLIP.DELETER__C 4245658 Changes to template source may not be picked up by compiler 4252098 5.0 C++ compiler generates incorrect code for passing structure parameters 4254380 Bad linkage for explicit inline member of local class in extern "C" function 4254667 The version 5.0 C++ compiler fails to optimize switch statement 4257840 c++ 5.0 is rethrowing an exception and calling unexpected signal handler 4258157 Compiler returns Error: complex* is not a structure type 4259812 CC 5.0 template friend error 4260459 C++ 5.0 Compiler out of memory/ poor performance 4260505 Problem demangling abbreviated qualifiers 4261686 compilation of file with many case statements fails with 'out of memory' 4262944 template class constructor representative is improperly tagged 4263363 C++ 5.0 Compiler, Full path to .o files does not work when path is a symbolic link 4270571 exception not being caught and core dumps (from 107390-06) (from 107390-05) 4080243 cplus_demangle() doesn't demangle const volatile member functions 4183437 demangling functions as template arguments 4195853 SC5.0 C++ generates errors about system include files 4223326 undefined symbol in libdemangle library on v9 4225998 Errors when Object files are compiled with their path name using Standard Templa 4227692 Quick Demangler operator members seem to be broken 4232826 Adding explicit parameters to template class causes invalid error 4233721 Compiling with -g using C++ 5.0 inhibits accessibility of base class members 4237957 SC5.0 cannot compile with cwchar or whar.h and string included on 5.7 4246014 compiler 5.0: bogus template match error message for template with const retrun 4247636 header file order of inclusion dependency 4247650 using directive fails 4248010 line 11: Error: R is not a member of X<>. 4249167 ld error: using -instances=semiexplicit flag with virt function den in template 4249808 Patch 107311-03 breaks customers code. 4250946 Error: The function std::operator ... has not had a body defined 4251207 c++ -x04 V5.0 is producing wrong code 4251248 wofstreams do not write properly to a file in C++ 5.0 4251261 C++ 5.0 generating wrong code 4254406 C++ 5.0: An unnamed type cannot be used as a template (from 107390-04) 4233998 C++ 5.0 compiler is overriding the bottom part of a 32-bit pointer (from 107390-03) 1189572 dbx cannot find variable due to bad SLINE stabs 4105648 add minimal differential mangling support to compiler stabs 4181400 segmentation fault during parallel template instantiation 4227577 /usr/include/memory.h conflicts with standard C++ requirements 4229612 Template failing with C++ ver 5.0 4232284 including after causes it not to be included again 4234362 WS 5.0 C++ implementation of errno causes portability problems 4234483 Compiler issues error for program using reverse_iterator 4234617 compiler goes into inclusion loop when new solaris headers are tried 4235240 Code errors out when headers not in a certain order 4235978 setjmp not defined as a macro in and 4236045 regression in template instantiation; plumhall volum5 fails 4236761 errno ambiguity with CC 5.0 4237873 does not include template classes while the repository locates in subfolder 4237903 form of C header has include order dependency 4238767 enum in C++ 5.0 gives the ambiguous error message 4243504 C++ program gets: Undefined symbols pthread_sigmask in linking 4243821 Bloat in the binary size with C++ 5.0 4244475 App throws NullPointerExceptions after a failed publish 4244513 template semiexplicit instantiation broken in 5.0 4245607 wchar.h and map order of inclusion bug 4246609 include file order affects program compilation (from 107390-02) 4216319 4.2 and 5.0 is making an unnecessary destructor call 4206657 C++ 5.0 Code hangs in /usr/lib/libthread.so.1 4224951 /opt/SUNWspro/bin/../SC5.0/bin/fbe: "/tmp/yabeAAA0pp5_f", line 2046: error: (from 107390-01) 1261797 C++ program gives wrong results with virtual functions. 4005207 Uninitialized static data (LOCL/OBJT ELF symbols) have no size using -O 4058012 segmentation fault in exeption handling (rethrow from unexpected) 4185570 extern const defined in C++ do not get placed in RO memory. 4187277 regression in handling definition of static template data members 4193618 Wide streams (wcout, et al.) not initialized properly 4194641 Assertion in ./libCstd/scl_src/bitsettest/bitset with opt-g 4195218 "./a.out" results in a segV when "a.out" works 4196630 ./driver/opt-xa: -xa not working correctly 4197057 SUNW_SPRO_SC_libCstd.cat has to be there even on C locale 4197753 compiler generates code which core dumps in __STATIC_CONSTRUCTOR 4197789 iostream includes math.h and pollutes the global namespace 4199857 Missing symbols from libCrun.so.1 4200002 Legacy iostream version of ostream << complex implementation doesn't compile Patch Installation Instructions: -------------------------------- For Solaris 2.0-2.6 releases, refer to the Install.info file and/or the README within the patch for instructions on using the generic 'installpatch' and 'backoutpatch' scripts provided with each patch." For Solaris 7 release, refer to the man pages for instructions on using 'patchadd' and 'patchrm' scripts provided with Solaris. Any other special or non-generic installation instructions should be described below as special instructions. The following example installs a patch to a standalone machine: example# patchadd /var/spool/patch/106326-01 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate man pages. Special Install Instructions: ----------------------------- Due to the size of this patch, it can require a maximum of 91 MB of free space in the /var partition to install properly. To help minimize this, you can specify a different location where the information is stored that will allow you to back out this patch. On Solaris 2.6 and Solaris 7, please see the -B option description in the patchadd man page. On Solaris 2.5.1, please see the instructions in the "Install.info" file that is part of this patch. Please note that this patch is only applicable for Solaris 7 and SPARC V9 (-xarch=v9 or -xarch=v9a) compilations. Since many customers use applications servers to distribute the compilers via NFS, this patch is designed so it can be installed on all versions of Solaris supported by this release and any SPARC based system. Also note that this patch requires the corresponding 32-bit compiler patches to be installed. The patch numbers are 107311 for the corresponding SPARC 32-bit C++ compiler patch and 107357 for the SPARC compiler common components patch. Please refer to the "Patches required with this patch:" line above for the minimum patch revision level required. It is strongly recommended that the C++ Runtime patches (patches to the Solaris SUNWlibC package) are installed on all systems used by the compiler or used to execute code generated by these compilers. In all cases, these are the minimum revision level recommended. If more recent revision levels are available, we encourage you to use them. Solaris Version SPARC SPARC V9 Intel ------- --------- --------- --------- 2.5.1 106529-07 na 106530-07 2.6 105591-09 na 104678-07 7 106327-08 106300-09 106328-08 8 108434-01 108435-01 108436-01 The SPARC V9 patch is only required for systems running Solaris 7-8 and either executing or compiling 64-bit C++ applications. README -- Last modified date: Wednesday, October 30, 2002