Patch-ID# 102934-06 Keywords: dynamic_cast templates ar inlined member function inlining destructor Synopsis: SPARCompilers 4.0: Jumbo patch for C++ 4.1 on Solaris SPARC Date: Jun/11/96 Solaris Release: 2.3 2.4 2.5 SunOS Release: 5.3 5.4 5.5 Unbundled Product: SPARCompilers (C++ 4.1) Unbundled Release: 4.0 Relevant Architectures: sparc BugId's fixed with this patch: 1226522 1227358 1222655 1224115 1224620 1224648 1225605 1228409 1228905 1235082 1234253 1233117 1234256 1235257 1235548 1236931 1222588 1223494 1239102 1241450 1243099 1243872 1239885 1244459 1240427 1182572 1215408 1223150 1227133 1228791 1234253 1239249 1240555 1241209 1243278 1243311 1245226 1247567 1247609 1243691 1246357 1247503 1249422 Changes incorporated in this version: 1182572 1215408 1223150 1227133 1228791 1234253 1239249 1240555 1241209 1243278 1243311 1245226 1247567 1247609 1243691 1246357 1247503 1249422 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: bin/dem bin/tdb_link bin/ccfe bin/c++filt bin/cg lib/libdem.a lib/libC.a lib/libcomplex.a lib/libcomplex.so.5 lib/libtask.a Problem Description: (Rev 6) 1182572 dynamic_cast cannot recognize the reference type 1215408 C++ templates truncated when stored in a library with ar 1223150 Inlined member function with multiple returns in if block is incorrect 1227133 Program compiling fine with +d fails to compile with inlining turned on. 1228791 Compiler fails to compile inline function, works fine w.o. inlining 1234253 prog doesn't call destructor routine but reuses memory calling prog to core dump 1239249 Performance of executables built by C++ 4.0.1 is worse than those built by 3.0.1 1240555 Wrong symbolic link was created in template database by patch 1241209 Program gets seg fault when not compiled with -g option 1243278 C++ compiler dies during link if ptrepository is locked by another user 1243311 C++ program core dumps with inlining enabled 1245226 Unnecessary re-instantiations taking place 1247567 -xarch not getting passed to cg correctly 1247609 code causes compiler to crash 1249422 4.1 C++ compiler core dumps on particular input file (from cg updates) 1243691: C++ 4.1 (SC4.0) cg dumps core 1246357: -dalign, -O2, and -KPIC create bug for Dassault 1247503: cg behaves differently for different optimization levels - fails on 03 and 04. (Rev 5) 1243872 program using libtask coredumps 1223494 severe performance degradation caused by new() 1239102 Limit on number of #define s in C++ 1222588 destructor is not called for object instantiated 1241450 code compiled if LANG is set to other value than C 1243099 Compiler generates incorrect results in sv locale (iropt fixes) 1239885,1244459 iropt SEG FAULT at xO4. 1240427: option -xO4 produces incorrect code. (Rev 4) 1235548 C++ 4.0.1 codes has memory leak with -g0 option 1234256 inline bug with compile errors 1236931 demangler coredumps demangling mangled template name 1235257 Compiled fine on sc3.0.1; now c++ sc4.0 produces a signal 11 (Rev 3) 1235082 C++ program fails with an assertion error in prepexpression.cc at line 39 1234253 prog doesn't call destructor routine but reuses memory calling prog to core dump 1233117 C++ 4.x problem with inline functions under extern C function (Rev 1) 1222655 cg: cannot calculate difference between symbol ".LL4" and symbol "program" 1224115 A float argument has its value changed during an objectiveC method 1224620 Objective-C compiler generates incorrect constant NSStrings when 0 is embedded 1224648 Objective-C compiler is too picky about "@class" predeclaration 1225605 chained message invocations aren't properly type checked 1226522 cg gives unnecessary warnings on lduha and sta instructions 1227358 cg gives an incorrect assertion and dies. 1228409 1228905 The compiler would sometimes crash attempting overload resolution when both operands of an operator are acceptable to a built-in operator, but both were not acceptable together. For example, if one operand is a char* and the other is of a class type that can be converted to a char*. For the bug to be manifest, there should also be a user-defined operator that makes the operation legal. Patch Installation Instructions: -------------------------------- Refer to the Install.info file for instructions on using the generic 'installpatch' and 'backoutpatch' scripts provided with each patch. Any other special or non-generic installation instructions should be described below as special instructions. Special Install Instructions: ----------------------------- None.