<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">OBSOLETE Patch-ID# 111679-05
Keywords: C 5.3 WS6U2
Synopsis: Obsoleted by: 111679-06 C 5.3: Patch for Forte Developer 6 update 2 C compiler
Date: Feb/15/2002

Solaris Release: 2.6 7 8

SunOS Release: 5.6 5.7 5.8

Unbundled Product: Forte Developer 6 Update 2

Unbundled Release: C_5.3

Xref: 

Topic: 

Relevant Architectures: sparc

BugId's fixed with this patch: 4427975 4434792 4465047 4486317 4493917 4509092 4522629 4524014

Changes incorporated in this version: 4434792 4465047 4509092 4524014

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: 

&lt;install_dir&gt;/SUNWspro/WS6U2/bin/acomp
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/acompegr
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/c89
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/cc
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/lint
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/lint1
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/lint2
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/lint2n
&lt;install_dir&gt;/SUNWspro/WS6U2/bin/ssbd

Problem Description:

4434792 compiler spews unusable error/warning messages on struct type mismatch
4465047 C compiler error messages should contain Error:
4509092 -errwarn=E_SLASH_STAR_IN_CMNT is processed incorrectly
4524014 lint too smart for own good (thinks 5.10 &lt; 5.7)
 
(from 111679-04)
 
4522629 Disagreement between C++ and C when returning a struct (C violates ABI)
 
(from 111679-03)
 
4493917 -xstrconst option causes bus error
 
(from 111679-02)
 
4486317 switch statements don't work properly
 
(from 111679-01)
 
4427975 WS6 lint returns "internal compiler error:"

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-8 releases, 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:
-----------------------------
 
	The fix for bugid 4522629 "Disagreement between C++ and C when
	returning a struct (C violates ABI)" in 111679-04 breaks binary
	compatibility on sparc V9 architectures only.  This is because
	C currently does not conform to the v9 ABI and the fix changes
	C to conform to the V9 ABI.  The codes affected will be any
	code with a function definition or function reference where the
	return value or any argument is defined as a small struct
	containing an array of floating-point type, i.e. float, double,
	or long double.  The incompatibility will exhibit undefined
	behavior if the function definition and the function reference
	are compiled using different C compilers.  The difference
	between those C compilers being one with this patch applied or
	one without this patch applied.  A small struct is defined as
	16 bytes for arguments, 32 bytes for return values.
 
	The patches that will introduce this incompatibility
	are 111679-04 for C Forte Developer 6 Update 2, and
	109513-08 for C Forte Developer 6 Update 1.
 
	Compatible compilers:
		C Forte Developer 6 Update 1 109513-08
		C Forte Developer 6 Update 2 111679-04
 
	Binaries compiled with earlier versions of these two compilers,
	or earlier versions of Forte Developer or DevPro compilers that
	have function definitions or function references where the
	return value or any argument is defined as a small struct
	containing an array of floating-point as shown in the following
	list will be incompatible with binaries compiled with the above
	listed compilers.
 
	Example of a small struct containing an array of floating-point
	type that will be incompatible:
 
	Functions returning a small struct containing a
	3 or 4 element array of double:
 
	    typedef struct {
		double tf[4];
	    } t4_st;
 
	    typedef struct {
		double tf[3];
	    } t3_st;
 
	Functions returning a small struct containing a
	3, 4, 5, 6, 7, or 8 element array of float
 
	    typedef struct {
		float tf[8];
	    } t8_st;
 
	    typedef struct {
		float tf[7];
	    } t7_st;
 
	    typedef struct {
		float tf[6];
	    } t6_st;
 
	    typedef struct {
		float tf[5];
	    } t5_st;
 
	    typedef struct {
		float tf[4];
	    } t4_st;
 
	    typedef struct {
		float tf[3];
	    } t3_st;
 
	Functions passing as an argument a small struct containing a 3,
	or 4 element array of float
 
	    typedef struct {
		float tf[4];
	    } t4_st;
 
	    typedef struct {
		float tf[3];
	    } t3_st;

README -- Last modified date:  Wednesday, April 3, 2002

</pre></body></html>