DOMAIN C Release Notes
Software Release 9.2
Part No. 005500
Revision 03
This document describes the C
compiler (version 4.16) and library
for DOMAIN software release 9.2.
The release notes for standard DOMAIN
software and other optional products
are documented in other sets of
release notes and are located in the
system /doc directory.
APOLLO COMPUTER INC.
330 Billerica Road
Chelmsford, Massachusetts 01824
c 1986 Apollo Computer Inc.
All rights reserved.
Printed in U.S.A.
Print date: February, 1986
This document was formatted using the FMT tool distributed with the DOMAIN
computer system.
APOLLO and DOMAIN are registered trademarks of Apollo Computer Inc.
AEGIS, DOMAIN/IX, DOMAIN/Dialogue, D3M, DPSS, DGR, GMR, GPR, and DSEE are
trademarks of Apollo Computer Inc.
Apollo Computer Inc. reserves the right to make changes in specifications and
other information contained in this publication without prior notice, and the
reader should, in all cases, consult Apollo Computer Inc. to determine
whether any such changes have been made.
THE TERMS AND CONDITIONS GOVERNING THE SALE OF APOLLO COMPUTER INC. HARDWARE
PRODUCTS AND THE LICENSING OF APOLLO COMPUTER INC. SOFTWARE CONSIST SOLELY OF
THOSE SET FORTH IN THE WRITTEN CONTRACTS BETWEEN APOLLO COMPUTER INC. AND ITS
CUSTOMERS. NO REPRESENTATION OR OTHER AFFIRMATION OF FACT CONTAINED IN THIS
PUBLICATION, INCLUDING BUT NOT LIMITED TO STATEMENTS REGARDING CAPACITY,
RESPONSE-TIME PERFORMANCE, SUITABILITY FOR USE OR PERFORMANCE OF PRODUCTS
DESCRIBED HEREIN SHALL BE DEEMED TO BE A WARRANTY BY APOLLO COMPUTER INC. FOR
ANY PURPOSE, OR GIVE RISE TO ANY LIABILITY BY APOLLO COMPUTER INC.
WHATSOEVER.
IN NO EVENT SHALL APOLLO COMPUTER INC. BE LIABLE FOR ANY INCIDENTAL,
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT
LIMITED TO LOST PROFITS) ARISING OUT OF OR RELATING TO THIS PUBLICATION OR
THE INFORMATION CONTAINED IN IT, EVEN IF APOLLO COMPUTER INC. HAS BEEN
ADVISED, KNEW OR SHOULD HAVE KNOWN OF THE POSSIBILITY OF SUCH DAMAGES.
THE SOFTWARE PROGRAMS DESCRIBED IN THIS DOCUMENT ARE CONFIDENTIAL INFORMATION
AND PROPRIETARY PRODUCTS OF APOLLO COMPUTER INC. OR ITS LICENSORS.
Reader_Notice
This document resides online in the /doc directory.
To print a copy of this document on a PRINTRONIX line printer, first convert
the file using the OS (overstrike) command then use the PRF command with the
-npag and -ftn options.
OS <file_pathname> | PRF -FTN -NPAG
To print a copy of this document on another printer, use the PRF command
with the -npag and -pr options.
PRF <file_pathname> -PR <printer_name> -NPAG
iii
Contents
Section Page
CHAPTER 1 OVERVIEW OF THE C COMPILER AND LIBRARY,
SOFTWARE RELEASE 9.2 . . . . . . . . . . . . . . . . . . . . 1-1
1.1 Enhancements at Revision 9.2 . . . . . . . . . . . . 1-1
1.1 Enhancements at Revision 9.0.020 . . . . . . . . . . . . 1-1
1.2 Enhancements at Revision 9.0 . . . . . . . . . . . . 1-1
CHAPTER 2 INSTALLATION PROCEDURES . . . . . . . . . . . . . . . . . . . 2-1
CHAPTER 3 CHANGES IN DOCUMENTATION. . . . . . . . . . . . . . . . . . . 3-1
CHAPTER 4 BUGS AND BUG FIXES. . . . . . . . . . . . . . . . . . . . . . 4-1
4.1 Known Bugs in Software Release 9.2 . . . . . . . . . . . 4-1
4.2 Bugs Fixed at SR9.2 . . . . . . . . . . . . . . . . . . 4-2
Contents iv
CHAPTER 1
OVERVIEW OF THE C COMPILER AND LIBRARY, SOFTWARE RELEASES 9.2, 9.0.020, AND 9.0
This chapter describes the enhancements made to the C compiler and CLIB from
SR8 to SR9.2.
1.1 Enhancements at Revision 9.2
At SR9.2, DOMAIN C added three new arguments to the -CPU compiler option.
These new arguments tell the compiler to generate code that will take full
advantage of the new DN3000, DN580, and DN570 nodes.
1.2 Enhancements at Revision 9.0.020
At SR9.0.020, DOMAIN C added three new arguments to the -CPU compiler
option. These new arguments tell the compiler to generate code that will
take full advantage of the new DSP90, DN330, and DN560 nodes.
1.3 Enhancements at Revision 9.0
The following enhancements were made to the DOMAIN C language compiler and
library at SR9.0:
o The preprocessor symbol (#) must appear in column 1 for all standard
preprocessor commands. In former releases, the pound sign could be
indented.
o There is a new preprocessor command called "#line" that allows you to
set the source code line number.
1-1 Software Release 9.2
o The "#module" preprocessor command now accepts two additional
arguments that allow you to create named sections. If used, #module
must precede all other tokens in the source file.
o There is a new preprocessor command called "#section" that allows
you to create named sections.
o There is a new preprocessor command called "#systype" that enables
you to specify the UNIX version for which the program is intended.
If used, #systype must precede all other tokens in the source file
except the #module preprocessor command.
o There is a new preprocessor macro called "defined" which can be used
with #if. It returns 1 if the argument is a defined name and 0 if
the argument has not been defined.
o There is a new preprocessor macro called "systype" that allows you to
find out what the current UNIX COMPILESYSTYPE is.
o There is a new compile option called "-SYSTYPE" that enables you to
specify the UNIX version for which the program should be compiled.
o The C Library includes additional system calls and functions.
Software Release 9.2 1-2
CHAPTER 2
INSTALLATION PROCEDURES
This chapter describes how to install SR9.2 optional products. You can add
this software to a node or DOMAIN System server that is running the SR9.2
version of the DOMAIN operating system. If a node is not running SR9.2,
follow the SR9.2 software update procedures. These procedures are described
in the manual Installing_DOMAIN_Software_- (Order No. 008860, Revision 00).
This chapter describes a two-phase approach to installing optional software.
In the first phase, a system administrator copies the software from the
distribution media into a "source area", then designates the installation
program in this source area as a protected subsystem. Designating the
installation program as a protected subsystem allows users in the network to
install protected system software on their own nodes WITHOUT having to use a
SYS_ADMIN account. (For more information about how protected subsystems work,
see Administering_Your_DOMAIN_System.)
In the second phase, users install software, typically using the installation
program in the source area. Users can install software across the network or
from the distribution media.
2.1 WHICH INSTALLATION PROCEDURE TO USE
There are two installation procedures, one for system administrators and one
for users. Determine which one to use before going any further.
2.1.1 Installation Procedures for System Administrators
Use Section 2.3 (Installation Procedures for System Administrators) IF
o You are a system administrator creating a source area and designating
the source area's installation program as a protected subsystem.
You can use cartridge tape, magnetic tape, a floppy disk, or an
existing source area.
o You are the first user to install software into your network, AND you
have rights to delete and change your system directories and wish to
2-1 Software Release 9.2
maintain rights to these directories. System directories include
/SYS, /COM, /DOC, /DOMAIN_EXAMPLES, /BSCOM, and /LIB. Use the ACL
command to learn your rights; ACL is documented in the DOMAIN__System
Command_Reference.
If you are a system administrator creating a protected subsystem, you can
install the software from a source area or into a target area that is not at
the entry directory (/) level. (Of course, if you do not install the
software at the entry directory level, the node will not boot off of the new
software; it will boot from the software at the entry directory level.) You
can install various optional software products into a source area and then
use this source area to selectively install optional products on the nodes in
the network.
For example, first create a directory //node/sr9.2_source_area. Then, when
installing from tape or floppy into this area, use //node/sr9.2_source_area
as the target volume name. To load from this area onto other nodes, use
//node/sr9.2_source_area as the source name.
When you create a source area and make the installation program in that area
a protected subsystem, the installation program takes on the SID (username)
USER.SYS_ADMIN, rather than that of the person who logged in to run it. If
USER.SYS_ADMIN does not have rights to modify system software in your
network, you can log in with an SID that does have rights and run the
installation program with the -MY_SID option. -MY_SID tells the installation
program NOT to take on the SID USER.SYS_ADMIN.
2.1.2 Installation Procedure for Users
Use this procedure if you are a user who does not have the rights to delete
and change your system directories. System directories include /SYS, /COM,
/DOC, /DOMAIN_EXAMPLES, /BSCOM, and /LIB. Use the ACL command to learn your
rights; ACL is documented in the DOMAIN_System_Command_Reference.
NOTE: You can only use this procedure if your system administrator
establishes a source area and designates the installation program
in the source area as a protected subsystem. You'll be able to copy
the optional software from any release media, but you must use the
INSTALL program from the source area designated by your system
administrator.
Sometimes, users explicitly set ACLs so that the account USER.SYS_ADMIN does
NOT have rights to change system software on their nodes. If you have done
this, you'll have to use the -MY_SID option, which PREVENTS the installation
program from taking on the SID USER.SYS_ADMIN.
Software Release 9.2 2-2
2.2 CONVENTIONS AND TERMINOLOGY
The terms and conventions used in these procedures are as follows:
o "Work node" is the node with a keyboard and display that you are
using to enter the commands to do the software installation.
o "Target volume" is the Winchester disk or mass storage disk on which
you are installing new software. You do not have to install the new
software into the target volume's entry directory (e.g., you are
creating a source area in a subdirectory on the target volume).
NOTE: When you are installing software to update a diskless node,
the target volume is the partner node's disk.
o "Target node" is the node or DOMAIN Server Processor (DSP) on which
you are installing or updating (i.e., the node that contains the
target volume). If the target node has a keyboard and a display
(i.e., it is not a DSP), the work node and the target node can be the
same.
o "Source" You must choose the source for your new software. If you
are installing the software using the procedure in the system
administrator phase, the source for the new software can be floppy
disks, magnetic tape, cartridge tape, or another node in the
network. If you are installing the software using the procedure in
the user phase, the source for the INSTALL program is the INSTALL
program marked as a protected subsystem by your system administrator.
You can get the rest of the SR9.2 software from the distribution
media.
The "source volume" is a Winchester disk or mass storage disk that
has already been updated with the new software. A "source node" is a
node in the network that has already been updated with the new
software (i.e., the node that contains the source volume).
NOTE: Ensure that the source volume contains the appropriate
optional software for the target node.
o A "secure network" is a network with a registry of user accounts and
access control of system software; an "open network" does not contain
user accounts and access control of system software.
o Angle brackets ( < > ) enclose the name of a key on the keyboard.
2-3 Software Release 9.2
2.3 INSTALLATION PROCEDURES FOR SYSTEM ADMINISTRATORS
Use these procedures if you are a user who has rights to modify your system
directories, or if you are a system administrator establishing a protected
subsystem.
If you are a system administrator establishing a protected subsystem, then
create a directory which will contain the INSTALL directory and the optional
software before you begin to install software. In the install procedures, you
must give this directory's pathname when you are asked for the target_volume.
You must also give the same pathname when you are asked to name a source area
for the protected subsystem.
1) Log in to a work node either as a SYS_ADMIN or log in as yourself.
Start a Shell on the work node. (This can be the target node.)
2) If you are installing the optional software over the network, then
skip step 2. If you are using a tape cartridge, a magnetic tape, or
a floppy disk to install the optional software, then perform step
2.
a. Set your working directory to //target_volume:
$ WD //target_volume <RETURN>
b. Insert the media into the drive and enter the RBAK command
shown below. If you are using a tape cartridge, use the CT
option shown in the example. If you are using a magnetic
tape, use the M0 (Mzero) option instead of CT. If you are
using a floppy, use the F0 (Fzero) option instead of CT.
$ RBAK -DEV CT -F 1 INSTALL -AS INSTALL -L -MS -FORCE -SACL
<RETURN>
$ RBAK -DEV M0 -F 1 INSTALL -AS INSTALL -L -MS -FORCE -SACL
<RETURN>
$ RBAK -DEV F0 -F 1 INSTALL -AS INSTALL -L -MS -FORCE -SACL
<RETURN>
c. Set your working directory to //target_volume/INSTALL:
$ WD //target_volume/INSTALL <RETURN>
3) (If you are installing software from a cartridge tape, a magnetic
tape or a floppy, SKIP THIS STEP). If you are installing software
over the network, set your working directory to //source/INSTALL.
Software Release 9.2 2-4
$ WD //source/INSTALL <RETURN>
4) Execute the INSTALL Shell script. In special cases you may need to
use the -MY_SID option (see Section 2.1 for more information).
$ INSTALL [-MY_SID] <RETURN>
5) The program prompts you to enter an installation type. To install an
optional product, enter OPT and press <RETURN>.
Software Installation Type(s) are:
STD -- Install SR9.2 standard software
RESTART -- Restart the software installation
ACL -- Set ACLs for existing software
CLEANUP -- Run the Cleanup Procedure for ADD MODE installations
OPT -- Install optional software (i.e., Pascal, FORTRAN)
Please Enter Installation Type:
6) You are then prompted for the name of the target volume. Enter it
and press <RETURN>. Remember, the target volume is the disk on
which the software will be installed, for instance, //ADMIN_DISK.
(If you're creating the source area in a lower-level directory, give
the directory's pathname.)
** Optional Software Installation **
Please enter the name of the TARGET volume that the optional
software will be installed on. (e.g. '//UPDATE_ME'):
Enter Target Volume:
7) The program displays a menu of optional products it can install.
Enter the name of the optional product that you want to install and
press <RETURN>. For example, if you want to install the CC product,
you'd type CC <RETURN>:
2-5 Software Release 9.2
Name Description Disk Blocks Needed
(Adding New Software)
CC C Compiler SR9.2 1400
CORE Core library SR9.0.020 500
D3M DOMAIN Distributed Database Management 4300
DIALOGUE DOMAIN/DIALOGUE 1000
DPCI1 DOMAIN/PCI -1 1000
DPCI8 DOMAIN/PCI -8 1100
DSEE DOMAIN Software Engineering Environment 1800*
FTN FORTRAN Compiler SR9.2 700
GPIO GPIO Software 950
LISP DOMAIN/Lisp 2300
PAS Pascal Compiler SR9.2 1100
RJE DOMAIN System RJE Emulation Package 300
* Represents DSEE software only.
The DSEE Tutorial is an additional 2500 blocks.
Enter the name of a single optional software product you
would like to install.
Please enter an optional software product name:
8) The procedure shows you a list of source media types. Enter the
source media you are using and press <RETURN>. For example, if you
were using a cartridge tape, you'd type: CTAPE <RETURN>.
Source MEDIA is one of:
CTAPE -- Optional Software Release Cartridge Tape
MTAPE -- Optional Software Release Magnetic Tape
FLOPPY -- Optional Software Release Floppies
NET -- A volume on the network with Optional Software
QUIT -- Exit from the installation.
Enter Source Media:
9) If you specified NET as the source media, the procedure prompts you
for the name of the source volume. Enter this name (for example,
"//MOZART") and press <RETURN>.
Enter the name of the entry directory from which to copy the
Optional Software (e.g., '//GTI'):
Enter Source Volume or type 'quit':
10) If you specified as source media magnetic tape, cartridge tape, or
floppy disks, the program asks you to insert the media into the
drive. Do so and press <RETURN>.
Software Release 9.2 2-6
11) The procedure displays a message to show that it is installing
software, and then installs the software, listing each file it
copies. When the installation is finished, the program gives you
the option to rerun the installation, finish the installation, or
install additional software. Check through the transcript pad to
verify that all the files were copied. (Type RERUN <RETURN> if you
see error messages and you wish to rerun the installation.
Otherwise, type FINISH <RETURN> if this is the last optional
software product you wish to install, or CONTINUE <RETURN>, if you
wish to install additional optional software products).
12) IF you are logged in as a system administrator and you are creating
a source area, perform Step 12 before you shut down. DO NOT execute
Step 12 if you are logged in as a user. Run the following program to
designate the source area's installation program as a protected
subsystem:
$ INIT_SOURCE
The program prompts you for the name of the source area. Typically
this is the target area into which you've just installed software.
13) To shut down the target node, after you've chosen FINISH, use the
Display Manager SHUT command as follows.
<CMD> SHUT <RETURN>
14) After the SUCCESSFUL SHUTDOWN message and the ">" prompt appear,
reboot the node by typing the following at the prompt: RE <RETURN>
<RETURN> EX AEGIS.
> RE
> <RETURN>
> <RETURN>
MD REV xx/xx/xx
> EX AEGIS.
Once the log-in prompt appears, you're finished with the
installation.
2.4 INSTALLATION PROCEDURES FOR USERS
1) Log in to a work node as yourself. Start a Shell on the work node.
2-7 Software Release 9.2
2) Set your working directory to //source/INSTALL. The source area
must have been created by your system administrator. (The
installation procedures for users require that you use the INSTALL
program designated by your system administrator.)
$ WD //source/INSTALL <RETURN>
3) Execute the INSTALL Shell script. (If you have explicitly PROTECTED
your system software against changes by the system administrator,
use -MY_SID option. Most users are not in this category. READ
SECTION 2.1 BEFORE USING THE -MY_SID option.)
$ INSTALL [-MY_SID] <RETURN>
4) The program prompts you to enter an installation type. To install an
optional product, enter OPT and press <RETURN>.
Software Installation Type(s) are:
STD -- Install SR9.2 standard software
RESTART -- Restart the software installation
ACL -- Set ACLs for existing software
CLEANUP -- Run the Cleanup Procedure for ADD MODE installations
OPT -- Install optional software (i.e., Pascal, FORTRAN)
Please Enter Installation Type:
5) You are then prompted for the name of the target volume. Enter it
and press <RETURN>. Remember, the target volume is the disk on
which the software will be installed, for instance, //MY_DISK.
** Optional Software Installation **
Please enter the name of the TARGET volume that the optional
software will be installed on. (e.g. '//UPDATE_ME'):
Enter Target Volume:
6) The program displays a menu of optional products it can install.
Enter the name of the optional product that you want to install and
press <RETURN>. For example, if you want to install the CC product,
you'd type CC<RETURN>.
Software Release 9.2 2-8
Name Description Disk Blocks Needed
(Adding New Software)
CC C Compiler SR9.2 1400
CORE Core library SR9.0.020 500
D3M DOMAIN Distributed Database Management 4300
DIALOGUE DOMAIN/DIALOGUE 1000
DPCI1 DOMAIN/PCI -1 1000
DPCI8 DOMAIN/PCI -8 1100
DSEE DOMAIN Software Engineering Environment 1800*
FTN FORTRAN Compiler SR9.2 700
GPIO GPIO Software 950
LISP DOMAIN/Lisp 2300
PAS Pascal Compiler SR9.2 1100
RJE DOMAIN System RJE Emulation Package 300
* Represents DSEE software only.
The DSEE Tutorial is an additional 2500 blocks.
Enter the name of a single optional software product you
would like to install.
Please enter an optional software product name:
7) The procedure shows you a list of source media types. Enter the
source media you are using and press <RETURN>. For example, if you
were using a cartridge tape, you'd type: CTAPE <RETURN>.
Source MEDIA is one of:
CTAPE -- Optional Software Release Cartridge Tape
MTAPE -- Optional Software Release Magnetic Tape
FLOPPY -- Optional Software Release Floppies
NET -- A volume on the network with Optional Software
QUIT -- Exit from the installation.
Enter Source Media:
8) If you specified NET as the source media, the procedure prompts you
for the name of the source volume. Enter this name (for example,
"//MOZART") and press <RETURN>.
Enter the name of the entry directory from which to copy the
Optional Software (e.g., '//GTI'):
Enter Source Volume or type 'quit':
9) If you specified as source media magnetic tape, cartridge tape, or
floppy disks, the program asks you to insert the media into the
drive. Do so and press <RETURN>.
2-9 Software Release 9.2
10) The procedure displays a message to show that it is installing
software, and then installs the software, listing each file it
copies. When the installation is finished, the program gives you
the option to rerun the installation, finish the installation, or
install additional software. Check through the transcript pad to
verify that all the files were copied. (Type RERUN<RETURN> if you
see error messages and you wish to rerun the installation.
Otherwise, type FINISH<RETURN> if this is the last optional software
product you wish to install, or CONTINUE<RETURN>, if you wish to
install additional optional software products.
11) To shut down the target node, once you've rebooted it, use the
Display Manager SHUT command as follows.
<CMD>SHUT<RETURN>
12) After the SUCCESSFUL SHUTDOWN message and the ">" prompt appear,
reboot the node by typing the following at the prompt: RE <RETURN>
<RETURN> EX AEGIS.
> RE
> <RETURN>
> <RETURN>
MD REV xx/xx/xx
> EX AEGIS.
Once the log-in prompt appears, you're finished with the
installation.
Software Release 9.2 2-10
CHAPTER 3
CHANGES IN DOCUMENTATION
With one exception, the revision 02 DOMAIN__C__Language__Reference manual
(Order Number 002093) fully describes all enhancements to the C compiler.
Enhancements to the C Library are fully described in the DOMAIN C
Library(CLIB) manual (Order Number 00805) for Aegis users and in the
DOMAIN/IX Programmer's Reference Manuals (Order Numbers 005799 & 005801) for
DOMAIN/IX users.
The one feature of the C language not described by manual concerns the -CPU
compiler option. Therefore, please change the description of the -CPU
compiler option on page 4-4 to the following:
-CPU 90|160|330|460|560|570|580|660|3000|PEB|ANY: CPU Selection
-CPU ANY is the default.
You use the -CPU option to specify the type of node that you intend to
execute the object file on. By using this option, the compiler codes the
executable object file to take advantage of the particular features of the
machine. The CPU option takes the following format:
ANY
90
160
330
460
560
-CPU 570
580
660
3000
PEB
In other words, you must specify one argument immediately following -CPU.
3-1 Software Release 9.2
-CPU ANY generates code that uses only the basic instruction set supported by
all DOMAIN nodes.
-CPU 160, -CPU 460, and -CPU 660 instruct the compiler to use DNx60 (except
DN560) machine language instructions for floating-point operations. They
also instruct the compiler to code 32-bit multiplication and division in-line
instead of calling a library routine. When you specify any of these
machines, the compiler automatically sets the -ALIGN option. If you compile
with one of these options but do not execute the program on a DSP160, DN460,
or DN660, then the system will report the following run time error:
DNx60 series node required to execute this object module
-CPU 560, -CPU 330, -CPU 90, -CPU 570, -CPU 580, and -CPU 30000 instruct the
compiler to generate code that uses the instruction set of the DN560, DN330,
DSP90, DN570, DN580, and DN3000 nodes. Using these arguments permits you to
get the best runtime performance out of your program. If you compile with
any of these arguments, then you will not be able to execute the program on a
node other than the DN560, DN330, DSP90, DN570, DN580, and DN3000. By using
these arguments, the compiler will produce in-line code for floating-point
operations. If you use -CPU ANY instead, then the compiler will code
floating-point operations as a call to a floating-point library.
If you specify -CPU PEB option, the compiler generates in-line code for the
Performance Enhancement Board (PEB), thereby speeding up the program's
execution on node's that contain a PEB. The degree of improvement depends
on how heavily the program uses 32-bit multiply and divide floating-point
operations.
If the following three conditions are true:
o your source code contains 32-bit multiply and divide operations.
o you compile with the -CPU PEB option.
o you execute the object file on a node that does not contain a PEB.
then the system will report the following error at run time:
peb required to execute this object module (process manager/loader)
The following shell command will tell you if the node you're working at has a
PEB:
$ netstat -config
Software Release 9.2 3-2
CHAPTER 4
BUGS AND BUG FIXES
This chapter describes the known bugs and the bugs fixed by SR9.2.
4.1 Bugs Fixed at SR9.2
The following bugs were fixed at SR9.2:
o Prior to SR9.2, dereferencing a pointer to a std_$call function
caused the compiler to abandon std_$call conventions. For example,
given,
std_$call void func();
void (*point)();
point = func;
you could dereference point to invoke func, but parameters were
passed by value rather than by reference. For SR9.2, we fixed this
bug so that the compiler remembers the std_$call conventions.
o Prior to SR9.2, the compiler was supposed to, but did not, issue an
error message when a function returned an array defined by a
typedef. At SR9.2, the compiler correctly catches the error and
issues the appropriate error message.
o SR9.0.020 introduced the following bug. The compiler was generating
an illegal instruction. We've fixed this bug at SR9.2.
o SR9.0.020 introduced the following bug. The compiler was not
assigning the results of logical expressions to bitfields properly.
We've fixed this bug at SR9.2.
o Prior to SR9.2, C mishandled a typedef of an unbounded array; for
example, consider the following example:
4-1 Software Release 9.2
typedef char MSG[];
static MSG a = "A";
static MSG b = "LONGER STRING";
The bounds of the array for MSG became erroneously defined to be the
number of bytes in the string initializer for a, causing any other
declaration of this type to be the same size as well. Therefore,
variable b was not long enough to contain the entire string. We've
fixed this bug at SR9.2
4.2 Known Bugs at SR9.2
The following bugs are known to exist at SR9.2:
o The attribute modifier does not work properly when used in a
function parameter. If you directly use an attribute modifier in a
function parameter, the attribute modifier will be ignored. You can
use the attribute modifier indirectly in a function parameter as
shown in the following example:
ifdef ATTR
define VOL attribute[volatile]
else
define VOL
endif
typedef int vint VOL;
void killer(a,b)
int a;
vint b;
{
int i;
int *p = &a + 1;
i = b*(b+1);
(*p) = 0;
i = i + b*(b+1);
printf("b = %d\n", b*(b+1));
}
main()
{
killer(1,2);
}
Notice that we applied the attribute modifier when we created type
"vint." If we had specified attribute directly when we declared
Software Release 9.2 4-2
parameter b, for instance:
int b attribute[volatile];
then the compiler would have ignored attribute[volatile].
4-3 Software Release 9.2