Patch-ID# 101910-14 Keywords: class multiple inheritance initialization linking templates virtual Synopsis: SPARCompiler 3.0.1: C++ 4.0.1 patch for Solaris 2.x Date: Feb/09/96 Solaris Release: 2.2 2.3 2.4 SunOS Release: 5.2 5.3 5.4 Unbundled Product: SPARCompiler C++ Unbundled Release: 4.0.1 Relevant Architectures: sparc BugId's fixed with this patch: 1168887 1171109 1172054 1172054 1172596 1172854 1173166 1173307 1173308 1173618 1173700 1174107 1174766 1175000 1175000 1175021 1175259 1175397 1175460 1175777 1175777 1176211 1176218 1177096 1177634 1177758 1178122 1178598 1178612 1178735 1179111 1179624 1179628 1180373 1180564 1180564 1180869 1180926 1181110 1181110 1181969 1182286 1182748 1182836 1182934 1182934 1184772 1184772 1185086 1185583 1186231 1186231 1186231 1186695 1186880 1186880 1186940 1187592 1187592 1187952 1188214 1188214 1188320 1188663 1188663 1188776 1188776 1189003 1189049 1189049 1189734 1189905 1189905 1191743 1192326 1192593 1192598 1193219 1193270 1193314 1193473 1193493 1193494 1193580 1193823 1194374 1194462 1195218 1195674 1195760 1196331 1196358 1196809 1197739 1198702 1199113 1201559 1201871 1203023 1206555 1206558 1205161 1207837 1194665 1190240 1202426 1205366 1209481 1209623 1209671 1210333 1210052 1228212 Changes incorporated in this version: 1231282 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: 106529 Obsoleted by: Files included with this patch: CC ccfe ptclean libC.a libtask.a librwtool.a tdb_link CC.1 as fbe cg Problem Description: 1231282 Incorrect Multiple declaration error for multiple argument templates Other C++ bugs fixed with this patch -------------------------------- Bug Id Synopsis 1168887 task library fails a correct program with "object::delete(): on chain" 1172054 strstream::seekp(val) does not actually change the put pointer 1172596 under some circumstances, throwing exceptions causes destructors to be invoked on bogus local objects. 1172854 -pto is not producing file static template instance functions 1173166 program containing ostream object initialized to 0 coredumps in destructor of ostream. 1173307 simple tests in libtask fail 1173618 No way to declare specialization of template class constructor. 1173700 SEGV processing pre-processor directive in template definition file 1174107 functions add-vector and check_addr take intensive cpu resources 1174766 Compiler flags redefinition of enum value 1175000 Copy constructor and assignment operator of class ios should be private 1175021 fatal error in ccfe, segmentation fault 1175259 Template instantiation fails in parallel make 1175460 SEGV on legal template code 1175777 long long not guarded in iostream.h on 4.x, problem with -nocx 1176211 Can't initialize a static member of a 2 argument templated class. 1176218 Can't use non-inline templated derived class constructor. 1177096 Weaks in macros don't work with patched patch 101910-02 1177634 +w warnings from strstream.h 1177758 Destructors for temps improperly executed in flow-through case 1178122 Problem with duplicate vtbls in user .o and template .o 1178612 Does not set bit is_stcall in IR for functions returning a pointer to a member function. When compiled with -O, causes iropt to SEGV. 1178598 virtual functions with virtual base class doesnot pick right function. 1178735 A test program that is compiled with libtask.a from repeatedly fails with "task::task() or task::resume(): stack overflow". 1179111 Bug in libC_mtstubs 1179624 Assertion error in ccfe, front/src/ftemplate.cc. 1179628 Compiler can't initialize a static template member with multi-arg constructor. 1180373 Runtime environment is not dealing with multiple inheritance. 1180564 istreams get set to EOF when a SIGALRM happens 1180869 Const arrays gives multiply defined symbols 1181110 C++ derived class stab gets missing field descrip. for self-pointer 1181969 C++ compiler is not handling the multiple inheritance properly 1182286 Destructor of temporary object is called twice. 1182748 Signal 10 while processing file, regression in C++ 4.0.1 patch 1182836 compiler terminates with assertion message at arbitrary line in source 1182934 Writing to a strstream moves the get (tellg) pointer 1183447 c++ 4.0.1 task routine o.forget() does not work correctly 1184772 ios formatting fails to print floating point numbers as printf() 1185086 typedef of instantiated template not recognized 1186403 Task library queue member function print() gives infinite loop 1186695 C++ program won't compile without -g option w/ C++4.0.1. 1186940 signal 11 generated during template processing 1186231 C++4.0.1 patch#101910-04 introduce a new problem with -pto used 1186880 C++ 4.0.1 core dumps when calling virtual void function 1187592 The fstream class does not handle pipes (FIFO) properly. 1188214 assertion failure in multiple.cc while processing template 1188320 incorrect code generated for exception. local destructors not called 1188663 Signal 10 while processing file with -g, line number 0 1188776 Overloading problem in C++ 4.0.1 1189049 assertion error in bindutil.cc line 865 1189003 C++ compiler problem processing default arguments 1189734 The exception handling does not properly unwind the stack. 1189905 Template mechanism regenerates template unnecessarily 1190240 missing parenthesis, but the preprocessor never retruns at compile time. 1191743 C++ 4.0.1 (100910-05 applied) gets assertion error 1192326 problem specializing a method 1192593 SEGV regression in test suite with fix for 1173940 in tdb_link 1192598 No way to declare specialization of template class destructor 1193219 Destructors don't get called after an exception is 'thrown' in constructor 1193270 different flag results in different behaviors at run-time with code included 1193314 assertion error in ../../front/src/prepexpression.cc, line 37 1193494 Assertion error: (../../front/src/emitexpression.cc, line 247) 1193473 undefined vtbl error message is really confusing when used with ild 1193493 virtual function gives signal ABRT at runtime 1193580 Problem with binary data in iostreams 1193823 core dump on method call when using virtual inheritance at multiple levels 1194374 virtual function dumped core with ****Pure virtual function called message. 1194462 fstream .open behavior with ios::out worked at 3.0.1, is broken at 4.0.1 1194665 tcov gives incorrect execution count for C++ 4.0.1 1195218 creating aliases with pragma weak does not work 1195674 exception lists for shared object are MT-unsafe 1195760 label number not reset compiling template .o files 1196331 C++ 4.0.1: problem with overloaded user-defined conversions 1196358 Order of compiles and links in template using files causes link errors 1196809 Uninitialized field in ccfe (bug in initialization of var_descr) 1197739 Spurious C++4.0.1(template related?) linking errors? 1198702 template functions are not declared static when using -pto 1199113 TDB_LINK doesn't re-use -I paths when regenerating templates 1201559 behavior of unexpected() is different between C++ 4.0.1 and C++ 4.1 1201871 regular expression class library pattern-matching not working correctly 1202426 tdb_link produces link errors after successful link 1203023 regression in C++ 4.0.1 patch compiler when inlining 1205161 C++ compiler does not properly handle bit fields that are 32 bits in width. 1205366 template definition stab missing in .o 1206555 Regeneration fails because of change in build directory 1206558 Unnecessary re-instantiations taking place, causing a redefinition error 1207837 c++ template compilation reverses the order of includes 1209481 seems not possible to specialize a template member function const 1209623 "Assertion failed..src/decl.c " error message while compiling 1209671 Error:class::methode:already had a body defined when template const member 1210052 extra single quote within string is confusing tdb_link 1210333 c++ compiler hangs waiting on a signal 1228212 ccfe goes into an infinite loop Other bugs fixed with this patch -------------------------------- Bug Id Synopsis 1171109 compiler with -O2 option causes assertion failed error 1173308 assertion failure in code generator compiling simple prog with -O 1175397 using FORTRAN optimization produces incorrect results 1180926 cg botches 8 or 16 bit arithmetic 1185583 optimizer moves assignment ahead from exception raise 1186617 strength reduction of multiply inside subscript fails big performance loss 1191171 as gives internal error write_relocs(): r_symp==NULL Patch Installation Instructions: -------------------------------- Generic 'installpatch' and 'backoutpatch' scripts are provided within each patch package with instructions appended to this section. Other specific or unique installation instructions may also be necessary and should be described below. Special Install Instructions: ----------------------------- None.