This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Bug in optimizer (-O2 and -O3)
- To: egcs-bugs at cygnus dot com
- Subject: Bug in optimizer (-O2 and -O3)
- From: Peter Leven <p-leven at bird dot ai dot uiuc dot edu>
- Date: Wed, 28 Jan 1998 12:06:01 -0600
- Reply-To: p-leven at uiuc dot edu
Hello,
I have found an optimizer bug in egcs-1.0.1 when running the test suite
after compilation. The system on which I compiled egcs is
sparc-sun-solaris2.5.1. The file for which this bug appears is
loop-2f.c in the gcc/testsuite/gcc.c-torture/execute directory.
The bug appears to be fairly old, since I get the same result
using gcc-2.6.3, gcc-2.7.2.1, and gcc-2.8.0 on sparc and gcc-2.7.2 on
linux.
egcs version: egcs-2.90.23 980102 (egcs-1.0.1 release)
Relevant code segment:
f (int s, char *p)
{
int i;
for (i = s; i >= 0 && &p[i] < &p[40]; i++)
{
p[i] = -2;
}
}
With optimization level O2 and O3, the variable i is optimized out
and the first comparison in the for loop (i >= 0) is converted
into i + p >= p. At lower levels of optimization, or when the
value of i is used elsewhere in the function, this conversion does
not take place. This probably would not normally be a problem,
except that the test program uses an address of p at the boundary
between + and - for signed integers (0x7ffffff8). Because the
comparison function used is signed, the comparison fails when
i reaches 0x80000000.
The problem in this case is that the optimizer is not expecting the
overflow in the integer representation.
Of course, for this particular case, the i >= 0 test could be optimized
out of the for loop altogether and just happen once at the beginning
of the function.
The assembly output:
Option: -O Option: -O2
============================== ==============================
.align 4 .align 4
.stabs "f:F(0,1)",36,0,29,f .stabs "f:F(0,1)",36,0,29,f
.stabs "s:P(0,1)",64,0,28,8 .stabs "s:P(0,1)",64,0,28,8
.stabs "p:P(5,6)",64,0,28,9 .stabs "p:P(5,6)",64,0,28,9
.global f .global f
.type f,#function .type f,#function
.proc 04 .proc 04
f: f:
.stabn 68,0,29,.LM1-f .stabn 68,0,29,.LM1-f
.LM1: .LM1:
!#PROLOGUE# 0 !#PROLOGUE# 0
!#PROLOGUE# 1 !#PROLOGUE# 1
.stabn 68,0,30,.LM2-f .stabn 68,0,30,.LM2-f
.LM2: .LM2:
.LLBB2: .LLBB2:
.stabn 68,0,31,.LM3-f .stabn 68,0,31,.LM3-f
.LM3: .LM3:
cmp %o0,0 cmp %o0,0
bl .LL3 bl .LL3
add %o1,40,%g3 add %o1,40,%g2
mov -2,%o2 mov -2,%g3
add %o1,%o0,%g2 add %o0,%o1,%o0
.LL8: cmp %o0,%g2
cmp %g2,%g3 .LL8:
bgeu .LL3 bgeu .LL3
nop nop
.stabn 68,0,33,.LM4-f .stabn 68,0,33,.LM4-f
.LM4: .LM4:
stb %o2,[%o1+%o0] stb %g3,[%o0]
.stabn 68,0,31,.LM5-f .stabn 68,0,31,.LM5-f
.LM5: .LM5:
addcc %o0,1,%o0 add %o0,1,%o0
bpos .LL8 cmp %o0,%o1
add %o1,%o0,%g2 bge .LL8
.LL3: cmp %o0,%g2
.stabn 68,0,35,.LM6-f .LL3:
.LM6: .stabn 68,0,35,.LM6-f
.LLBE2: .LM6:
retl .LLBE2:
nop retl
.LLfe1: nop
.size f,.LLfe1-f .LLfe1:
.size f,.LLfe1-f
Attached are the complete versions of the relevant files.
-Peter
P.S. A relatively unrelated topic is that the standard template library
does not pass the -Weffc++ tests. This makes it rather annoying to use the
option with one's one code, since one must find the messages relating to
one's own code in between the messages for the standard library.
--
**********************************************************************
* Peter Leven * p-leven@uiuc.edu *
** Electrical and Computer Engineering * University of Illinois **
** Beckman Institute, MC 251 * Urbana, IL 61801 **
* http://www.uiuc.edu/ph/www/p-leven * (217) 244-1372 *
**********************************************************************
#include <limits.h>
#include <stdio.h>
#ifdef __unix__ /* ??? Is that good enough? */
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>
#ifndef MAP_ANON
#ifdef MAP_ANONYMOUS
#define MAP_ANON MAP_ANONYMOUS
#else
#define MAP_ANON MAP_FILE
#endif
#endif
#ifndef MAP_FILE
#define MAP_FILE 0
#endif
#ifndef MAP_FIXED
#define MAP_FIXED 0
#endif
#endif
#define MAP_START (void *)0x7fff8000
#define MAP_LEN 0x10000
#define OFFSET (MAP_LEN/2 - 2 * sizeof (char));
f (int s, char *p)
{
int i;
for (i = s; i >= 0 && &p[i] < &p[40]; i++)
{
p[i] = -2;
}
}
main ()
{
#ifdef MAP_ANON
char *p;
int dev_zero;
dev_zero = open ("/dev/zero", O_RDONLY);
/* -1 is OK when we have MAP_ANON; else mmap will flag an error. */
if (INT_MAX != 0x7fffffffL || sizeof (char *) != sizeof (int))
exit (0);
p = mmap (MAP_START, MAP_LEN, PROT_READ|PROT_WRITE,
MAP_ANON|MAP_FIXED|MAP_PRIVATE, dev_zero, 0);
if (p != (char *)-1)
{
p += OFFSET;
p[39] = 0;
f (0, p);
if (p[39] != (char)-2)
abort ();
p[39] = 0;
f (-1, p);
if (p[39] != 0)
abort ();
}
#endif
exit (0);
}
.file "loop-2f.c"
! GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
! options passed: -g -O -Wall
! options enabled: -fdefer-pop -fomit-frame-pointer -fthread-jumps
! -fpeephole -ffunction-cse -finline -fkeep-static-consts
! -fpcc-struct-return -fdelayed-branch -fcommon -fverbose-asm -fgnu-linker
! -falias-check -fargument-alias -mepilogue -mapp-regs
.stabs "/home/p-leven/testing/C/",100,0,0,.LLtext0
.stabs "loop-2f.c",100,0,0,.LLtext0
.section ".text"
.LLtext0:
.stabs "gcc2_compiled.", 0x3c, 0, 0, 0
.stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0
.stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
.stabs "long int:t(0,3)=r(0,3);-2147483648;2147483647;",128,0,0,0
.stabs "unsigned int:t(0,4)=r(0,4);0;-1;",128,0,0,0
.stabs "long unsigned int:t(0,5)=r(0,5);0;-1;",128,0,0,0
.stabs "long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;",128,0,0,0
.stabs "long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;",128,0,0,0
.stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
.stabs "short unsigned int:t(0,9)=r(0,9);0;65535;",128,0,0,0
.stabs "signed char:t(0,10)=r(0,10);-128;127;",128,0,0,0
.stabs "unsigned char:t(0,11)=r(0,11);0;255;",128,0,0,0
.stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
.stabs "double:t(0,13)=r(0,1);8;0;",128,0,0,0
.stabs "long double:t(0,14)=r(0,1);16;0;",128,0,0,0
.stabs "complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;",128,0,0,0
.stabs "complex float:t(0,16)=r(0,16);4;0;",128,0,0,0
.stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0
.stabs "complex long double:t(0,18)=r(0,18);16;0;",128,0,0,0
.stabs "void:t(0,19)=(0,19)",128,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/limits.h",130,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/syslimits.h",130,0,0,0
.stabs "/usr/include/sys/feature_tests.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/isa_defs.h",130,0,0,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/types.h",130,0,0,0
.stabs "/usr/include/sys/machtypes.h",130,0,0,0
.stabs "_physadr_t:T(6,1)=s4r:(6,2)=ar(0,0);0;0;(0,1),0,32;;",128,0,0,0
.stabs "physadr_t:t(6,3)=(6,4)=*(6,1)",128,0,28,0
.stabs "_label_t:T(6,5)=s8val:(6,6)=ar(0,0);0;1;(0,1),0,64;;",128,0,0,0
.stabs "label_t:t(6,7)=(6,5)",128,0,30,0
.stabs "lock_t:t(6,8)=(0,11)",128,0,34,0
.stabn 162,0,0,0
.stabs "uchar_t:t(5,1)=(0,11)",128,0,27,0
.stabs "ushort_t:t(5,2)=(0,9)",128,0,28,0
.stabs "uint_t:t(5,3)=(0,4)",128,0,29,0
.stabs "ulong_t:t(5,4)=(0,5)",128,0,30,0
.stabs "caddr_t:t(5,5)=(5,6)=*(0,2)",128,0,32,0
.stabs "daddr_t:t(5,7)=(0,3)",128,0,33,0
.stabs "off_t:t(5,8)=(0,3)",128,0,34,0
.stabs "cnt_t:t(5,9)=(0,8)",128,0,35,0
.stabs "paddr_t:t(5,10)=(5,4)",128,0,37,0
.stabs "use_t:t(5,11)=(5,1)",128,0,38,0
.stabs "sysid_t:t(5,12)=(0,8)",128,0,39,0
.stabs "index_t:t(5,13)=(0,8)",128,0,40,0
.stabs " :T(5,14)=eB_FALSE:0,B_TRUE:1,;",128,0,0,0
.stabs "boolean_t:t(5,15)=(5,14)",128,0,45,0
.stabs "longlong_t:t(5,16)=(0,6)",128,0,54,0
.stabs "u_longlong_t:t(5,17)=(0,7)",128,0,55,0
.stabs "offset_t:t(5,18)=(5,16)",128,0,71,0
.stabs "diskaddr_t:t(5,19)=(5,16)",128,0,72,0
.stabs "lloff_t:t(5,20)=(5,21)=u8_f:(5,18),0,64;_p:(5,22)=s8_u:(0,3),0,32;_l:(5,8),32,32;;,0,64;;",128,0,97,0
.stabs "lldaddr_t:t(5,23)=(5,24)=u8_f:(5,19),0,64;_p:(5,25)=s8_u:(0,3),0,32;_l:(5,7),32,32;;,0,64;;",128,0,117,0
.stabs "k_fltset_t:t(5,26)=(5,4)",128,0,120,0
.stabs "id_t:t(5,27)=(0,3)",128,0,130,0
.stabs "major_t:t(5,28)=(5,4)",128,0,139,0
.stabs "minor_t:t(5,29)=(5,4)",128,0,140,0
.stabs "pri_t:t(5,30)=(0,8)",128,0,145,0
.stabs "o_mode_t:t(5,31)=(5,2)",128,0,158,0
.stabs "o_dev_t:t(5,32)=(0,8)",128,0,159,0
.stabs "o_uid_t:t(5,33)=(5,2)",128,0,160,0
.stabs "o_gid_t:t(5,34)=(5,33)",128,0,161,0
.stabs "o_nlink_t:t(5,35)=(0,8)",128,0,162,0
.stabs "o_pid_t:t(5,36)=(0,8)",128,0,163,0
.stabs "o_ino_t:t(5,37)=(5,2)",128,0,164,0
.stabs "key_t:t(5,38)=(0,1)",128,0,169,0
.stabs "mode_t:t(5,39)=(5,4)",128,0,170,0
.stabs "uid_t:t(5,40)=(0,3)",128,0,174,0
.stabs "gid_t:t(5,41)=(5,40)",128,0,177,0
.stabs "nlink_t:t(5,42)=(5,4)",128,0,178,0
.stabs "dev_t:t(5,43)=(5,4)",128,0,179,0
.stabs "ino_t:t(5,44)=(5,4)",128,0,180,0
.stabs "pid_t:t(5,45)=(0,3)",128,0,181,0
.stabs "size_t:t(5,46)=(0,4)",128,0,188,0
.stabs "ssize_t:t(5,47)=(0,1)",128,0,193,0
.stabs "time_t:t(5,48)=(0,3)",128,0,199,0
.stabs "clock_t:t(5,49)=(0,3)",128,0,204,0
.stabs "clockid_t:t(5,50)=(0,1)",128,0,209,0
.stabs "timer_t:t(5,51)=(0,1)",128,0,214,0
.stabs "unchar:t(5,52)=(0,11)",128,0,220,0
.stabs "ushort:t(5,53)=(0,9)",128,0,221,0
.stabs "uint:t(5,54)=(0,4)",128,0,222,0
.stabs "ulong:t(5,55)=(0,5)",128,0,223,0
.stabs "hostid_t:t(5,56)=(0,3)",128,0,260,0
.stabs "u_char:t(5,57)=(0,11)",128,0,270,0
.stabs "u_short:t(5,58)=(0,9)",128,0,271,0
.stabs "u_int:t(5,59)=(0,4)",128,0,272,0
.stabs "u_long:t(5,60)=(0,5)",128,0,273,0
.stabs "_quad:T(5,61)=s8val:(5,62)=ar(0,0);0;1;(0,3),0,64;;",128,0,0,0
.stabs "quad:t(5,63)=(5,61)",128,0,274,0
.stabs "/usr/include/sys/select.h",130,0,0,0
.stabs "/usr/include/sys/time.h",130,0,0,0
.stabs "timeval:T(8,1)=s8tv_sec:(0,3),0,32;tv_usec:(0,3),32,32;;",128,0,0,0
.stabs "timezone:T(8,2)=s8tz_minuteswest:(0,1),0,32;tz_dsttime:(0,1),32,32;;",128,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/types.h",130,0,0,0
.stabn 162,0,0,0
.stabs "itimerval:T(8,3)=s16it_interval:(8,1),0,64;it_value:(8,1),64,64;;",128,0,0,0
.stabs "timespec:T(8,4)=s8tv_sec:(5,48),0,32;tv_nsec:(0,3),32,32;;",128,0,0,0
.stabs "timespec_t:t(8,5)=(8,4)",128,0,160,0
.stabs "timestruc_t:t(8,6)=(8,4)",128,0,162,0
.stabs "itimerspec:T(8,7)=s16it_interval:(8,4),0,64;it_value:(8,4),64,64;;",128,0,0,0
.stabs "itimerspec_t:t(8,8)=(8,7)",128,0,192,0
.stabs "hrtime_t:t(8,9)=(5,16)",128,0,198,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/time.h",130,0,0,0
.stabs "tm:T(10,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;",128,0,0,0
.stabs "/usr/include/sys/time.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/usr/include/sys/siginfo.h",130,0,0,0
.stabs "sigval:T(12,1)=u4sival_int:(0,1),0,32;sival_ptr:(12,2)=*(0,19),0,32;;",128,0,0,0
.stabs "sigevent:T(12,3)=s24sigev_notify:(0,1),0,32;_sigev_un:(12,4)=u4_sigev_signo:(0,1),0,32;_sigev_notify_function:(12,5)=*(12,6)=f(0,19),0,32;;,32,32;sigev_value:(12,1),64,32;_sigev_pad1:(0,1),96,32;_sigev_notify_attributes:(12,2),128,32;_sigev_pad2:(0,1),160,32;;",128,0,0,0
.stabs "/usr/include/sys/machsig.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/usr/include/sys/time.h",130,0,0,0
.stabn 162,0,0,0
.stabs "siginfo:T(12,7)=s128si_signo:(0,1),0,32;si_code:(0,1),32,32;si_errno:(0,1),64,32;_data:(12,8)=u116_pad:(12,9)=ar(0,0);0;28;(0,1),0,928;_proc:(12,10)=s16_pid:(5,45),0,32;_pdata:(12,11)=u12_kill:(12,12)=s8_uid:(5,40),0,32;_value:(12,1),32,32;;,0,64;_cld:(12,13)=s12_utime:(5,49),0,32;_status:(0,1),32,32;_stime:(5,49),64,32;;,0,96;;,32,96;;,0,128;_fault:(12,14)=s8_addr:(5,5),0,32;_trapno:(0,1),32,32;;,0,64;_file:(12,15)=s8_fd:(0,1),0,32;_band:(0,3),32,32;;,0,64;_prof:(12,16)=s116_faddr:(5,5),0,32;_tstamp:(8,6),32,64;\\",128,0,0,0
.stabs "_syscall:(0,8),96,16;_nsysarg:(0,2),112,8;_fault:(0,2),120,8;_sysarg:(12,17)=ar(0,0);0;7;(0,3),128,256;_mstate:(12,18)=ar(0,0);0;16;(0,3),384,544;;,0,928;;,96,928;;",128,0,0,0
.stabs "siginfo_t:t(12,19)=(12,7)",128,0,179,0
.stabs "k_siginfo:T(12,20)=s28si_signo:(0,1),0,32;si_code:(0,1),32,32;si_errno:(0,1),64,32;_data:(12,21)=u16_proc:(12,22)=s16_pid:(5,45),0,32;_pdata:(12,23)=u12_kill:(12,24)=s8_uid:(5,40),0,32;_value:(12,1),32,32;;,0,64;_cld:(12,25)=s12_utime:(5,49),0,32;_status:(0,1),32,32;_stime:(5,49),64,32;;,0,96;;,32,96;;,0,128;_fault:(12,26)=s8_addr:(5,5),0,32;_trapno:(0,1),32,32;;,0,64;_file:(12,27)=s8_fd:(0,1),0,32;_band:(0,3),32,32;;,0,64;_prof:(12,28)=s16_faddr:(5,5),0,32;_tstamp:(8,6),32,64;_syscall:(0,8),96,16;_nsysarg:(0,2),112,8;\\",128,0,0,0
.stabs "_fault:(0,2),120,8;;,0,128;;,96,128;;",128,0,0,0
.stabs "k_siginfo_t:t(12,29)=(12,20)",128,0,234,0
.stabs "sigqueue:T(12,30)=s40sq_next:(12,31)=*(12,30),0,32;sq_info:(12,29),32,224;sq_func:(12,32)=*(12,33)=f(0,19),256,32;sq_backptr:(12,2),288,32;;",128,0,0,0
.stabs "sigqueue_t:t(12,34)=(12,30)",128,0,242,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "fd_mask:t(7,1)=(0,3)",128,0,35,0
.stabs "fd_set:T(7,2)=s128fds_bits:(7,3)=ar(0,0);0;31;(7,1),0,1024;;",128,0,0,0
.stabs "fd_set:t(7,4)=(7,2)",128,0,43,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/mman.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/stat.h",130,0,0,0
.stabs "stat:T(16,1)=s136st_dev:(5,43),0,32;st_pad1:(16,2)=ar(0,0);0;2;(0,3),32,96;st_ino:(5,44),128,32;st_mode:(5,39),160,32;st_nlink:(5,42),192,32;st_uid:(5,40),224,32;st_gid:(5,41),256,32;st_rdev:(5,43),288,32;st_pad2:(5,62),320,64;st_size:(5,8),384,32;st_pad3:(0,3),416,32;st_atim:(8,6),448,64;st_mtim:(8,6),512,64;st_ctim:(8,6),576,64;st_blksize:(0,3),640,32;st_blocks:(0,3),672,32;st_fstype:(16,3)=ar(0,0);0;15;(0,2),704,128;st_pad4:(12,17),832,256;;",128,0,0,0
.stabn 162,0,0,0
.stabs "/usr/include/fcntl.h",130,0,0,0
.stabs "/usr/include/sys/fcntl.h",130,0,0,0
.stabs "flock:T(18,1)=s36l_type:(0,8),0,16;l_whence:(0,8),16,16;l_start:(5,8),32,32;l_len:(5,8),64,32;l_sysid:(0,3),96,32;l_pid:(5,45),128,32;l_pad:(18,2)=ar(0,0);0;3;(0,3),160,128;;",128,0,0,0
.stabs "flock_t:t(18,3)=(18,1)",128,0,122,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.align 4
.stabs "f:F(0,1)",36,0,29,f
.stabs "s:P(0,1)",64,0,28,8
.stabs "p:P(5,6)",64,0,28,9
.global f
.type f,#function
.proc 04
f:
.stabn 68,0,29,.LM1-f
.LM1:
!#PROLOGUE# 0
!#PROLOGUE# 1
.stabn 68,0,30,.LM2-f
.LM2:
.LLBB2:
.stabn 68,0,31,.LM3-f
.LM3:
cmp %o0,0
bl .LL3
add %o1,40,%g3
mov -2,%o2
add %o1,%o0,%g2
.LL8:
cmp %g2,%g3
bgeu .LL3
nop
.stabn 68,0,33,.LM4-f
.LM4:
stb %o2,[%o1+%o0]
.stabn 68,0,31,.LM5-f
.LM5:
addcc %o0,1,%o0
bpos .LL8
add %o1,%o0,%g2
.LL3:
.stabn 68,0,35,.LM6-f
.LM6:
.LLBE2:
retl
nop
.LLfe1:
.size f,.LLfe1-f
.stabs "i:r(0,1)",64,0,30,8
.stabn 192,0,0,.LLBB2-f
.stabn 224,0,0,.LLBE2-f
.LLscope0:
.stabs "",36,0,0,.LLscope0-f
.section ".rodata"
.align 8
.LLC0:
.asciz "/dev/zero"
.section ".text"
.align 4
.stabs "main:F(0,1)",36,0,38,main
.global main
.type main,#function
.proc 04
main:
.stabn 68,0,38,.LM7-main
.LM7:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
.stabn 68,0,40,.LM8-main
.LM8:
.LLBB3:
.stabn 68,0,43,.LM9-main
.LM9:
sethi %hi(.LLC0),%o0
or %o0,%lo(.LLC0),%o0
call open,0
mov 0,%o1
mov %o0,%o4
.stabn 68,0,47,.LM10-main
.LM10:
sethi %hi(2147450880),%o0
sethi %hi(65536),%o1
mov 3,%o2
mov 18,%o3
call mmap,0
mov 0,%o5
mov %o0,%l0
.stabn 68,0,49,.LM11-main
.LM11:
cmp %l0,-1
be .LL11
sethi %hi(32766),%o0
.stabn 68,0,51,.LM12-main
.LM12:
or %o0,%lo(32766),%o0
add %l0,%o0,%l0
.stabn 68,0,52,.LM13-main
.LM13:
stb %g0,[%l0+39]
.stabn 68,0,53,.LM14-main
.LM14:
mov 0,%o0
call f,0
mov %l0,%o1
.stabn 68,0,54,.LM15-main
.LM15:
ldsb [%l0+39],%o0
cmp %o0,-2
be,a .LL12
stb %g0,[%l0+39]
.stabn 68,0,55,.LM16-main
.LM16:
call abort,0
nop
.LL12:
.stabn 68,0,57,.LM17-main
.LM17:
mov -1,%o0
call f,0
mov %l0,%o1
.stabn 68,0,58,.LM18-main
.LM18:
ldsb [%l0+39],%o0
cmp %o0,0
be .LL11
nop
.stabn 68,0,59,.LM19-main
.LM19:
call abort,0
nop
.LL11:
.stabn 68,0,62,.LM20-main
.LM20:
call exit,0
mov 0,%o0
.stabn 68,0,63,.LM21-main
.LM21:
.LLBE3:
ret
restore
.LLfe2:
.size main,.LLfe2-main
.stabs "p:r(5,6)",64,0,40,16
.stabs "dev_zero:r(0,1)",64,0,41,12
.stabn 192,0,0,.LLBB3-main
.stabn 224,0,0,.LLBE3-main
.LLscope1:
.stabs "",36,0,0,.LLscope1-main
.stabs "",100,0,0,.Letext
.Letext:
.ident "GCC: (GNU) egcs-2.90.23 980102 (egcs-1.0.1 release)"
.file "loop-2f.c"
! GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
! options passed: -g -O2 -Wall
! options enabled: -fdefer-pop -fomit-frame-pointer -fcse-follow-jumps
! -fcse-skip-blocks -fexpensive-optimizations -fthread-jumps
! -fstrength-reduce -fpeephole -fforce-mem -ffunction-cse -finline
! -fkeep-static-consts -fcaller-saves -fpcc-struct-return -fdelayed-branch
! -frerun-cse-after-loop -frerun-loop-opt -fschedule-insns
! -fschedule-insns2 -fcommon -fverbose-asm -fgnu-linker -fregmove
! -falias-check -fargument-alias -mepilogue -mapp-regs
.stabs "/home/p-leven/testing/C/",100,0,0,.LLtext0
.stabs "loop-2f.c",100,0,0,.LLtext0
.section ".text"
.LLtext0:
.stabs "gcc2_compiled.", 0x3c, 0, 0, 0
.stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0
.stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
.stabs "long int:t(0,3)=r(0,3);-2147483648;2147483647;",128,0,0,0
.stabs "unsigned int:t(0,4)=r(0,4);0;-1;",128,0,0,0
.stabs "long unsigned int:t(0,5)=r(0,5);0;-1;",128,0,0,0
.stabs "long long int:t(0,6)=r(0,1);01000000000000000000000;0777777777777777777777;",128,0,0,0
.stabs "long long unsigned int:t(0,7)=r(0,1);0000000000000;01777777777777777777777;",128,0,0,0
.stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
.stabs "short unsigned int:t(0,9)=r(0,9);0;65535;",128,0,0,0
.stabs "signed char:t(0,10)=r(0,10);-128;127;",128,0,0,0
.stabs "unsigned char:t(0,11)=r(0,11);0;255;",128,0,0,0
.stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
.stabs "double:t(0,13)=r(0,1);8;0;",128,0,0,0
.stabs "long double:t(0,14)=r(0,1);16;0;",128,0,0,0
.stabs "complex int:t(0,15)=s8real:(0,1),0,32;imag:(0,1),32,32;;",128,0,0,0
.stabs "complex float:t(0,16)=r(0,16);4;0;",128,0,0,0
.stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0
.stabs "complex long double:t(0,18)=r(0,18);16;0;",128,0,0,0
.stabs "void:t(0,19)=(0,19)",128,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/limits.h",130,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/syslimits.h",130,0,0,0
.stabs "/usr/include/sys/feature_tests.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/isa_defs.h",130,0,0,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/types.h",130,0,0,0
.stabs "/usr/include/sys/machtypes.h",130,0,0,0
.stabs "_physadr_t:T(6,1)=s4r:(6,2)=ar(0,0);0;0;(0,1),0,32;;",128,0,0,0
.stabs "physadr_t:t(6,3)=(6,4)=*(6,1)",128,0,28,0
.stabs "_label_t:T(6,5)=s8val:(6,6)=ar(0,0);0;1;(0,1),0,64;;",128,0,0,0
.stabs "label_t:t(6,7)=(6,5)",128,0,30,0
.stabs "lock_t:t(6,8)=(0,11)",128,0,34,0
.stabn 162,0,0,0
.stabs "uchar_t:t(5,1)=(0,11)",128,0,27,0
.stabs "ushort_t:t(5,2)=(0,9)",128,0,28,0
.stabs "uint_t:t(5,3)=(0,4)",128,0,29,0
.stabs "ulong_t:t(5,4)=(0,5)",128,0,30,0
.stabs "caddr_t:t(5,5)=(5,6)=*(0,2)",128,0,32,0
.stabs "daddr_t:t(5,7)=(0,3)",128,0,33,0
.stabs "off_t:t(5,8)=(0,3)",128,0,34,0
.stabs "cnt_t:t(5,9)=(0,8)",128,0,35,0
.stabs "paddr_t:t(5,10)=(5,4)",128,0,37,0
.stabs "use_t:t(5,11)=(5,1)",128,0,38,0
.stabs "sysid_t:t(5,12)=(0,8)",128,0,39,0
.stabs "index_t:t(5,13)=(0,8)",128,0,40,0
.stabs " :T(5,14)=eB_FALSE:0,B_TRUE:1,;",128,0,0,0
.stabs "boolean_t:t(5,15)=(5,14)",128,0,45,0
.stabs "longlong_t:t(5,16)=(0,6)",128,0,54,0
.stabs "u_longlong_t:t(5,17)=(0,7)",128,0,55,0
.stabs "offset_t:t(5,18)=(5,16)",128,0,71,0
.stabs "diskaddr_t:t(5,19)=(5,16)",128,0,72,0
.stabs "lloff_t:t(5,20)=(5,21)=u8_f:(5,18),0,64;_p:(5,22)=s8_u:(0,3),0,32;_l:(5,8),32,32;;,0,64;;",128,0,97,0
.stabs "lldaddr_t:t(5,23)=(5,24)=u8_f:(5,19),0,64;_p:(5,25)=s8_u:(0,3),0,32;_l:(5,7),32,32;;,0,64;;",128,0,117,0
.stabs "k_fltset_t:t(5,26)=(5,4)",128,0,120,0
.stabs "id_t:t(5,27)=(0,3)",128,0,130,0
.stabs "major_t:t(5,28)=(5,4)",128,0,139,0
.stabs "minor_t:t(5,29)=(5,4)",128,0,140,0
.stabs "pri_t:t(5,30)=(0,8)",128,0,145,0
.stabs "o_mode_t:t(5,31)=(5,2)",128,0,158,0
.stabs "o_dev_t:t(5,32)=(0,8)",128,0,159,0
.stabs "o_uid_t:t(5,33)=(5,2)",128,0,160,0
.stabs "o_gid_t:t(5,34)=(5,33)",128,0,161,0
.stabs "o_nlink_t:t(5,35)=(0,8)",128,0,162,0
.stabs "o_pid_t:t(5,36)=(0,8)",128,0,163,0
.stabs "o_ino_t:t(5,37)=(5,2)",128,0,164,0
.stabs "key_t:t(5,38)=(0,1)",128,0,169,0
.stabs "mode_t:t(5,39)=(5,4)",128,0,170,0
.stabs "uid_t:t(5,40)=(0,3)",128,0,174,0
.stabs "gid_t:t(5,41)=(5,40)",128,0,177,0
.stabs "nlink_t:t(5,42)=(5,4)",128,0,178,0
.stabs "dev_t:t(5,43)=(5,4)",128,0,179,0
.stabs "ino_t:t(5,44)=(5,4)",128,0,180,0
.stabs "pid_t:t(5,45)=(0,3)",128,0,181,0
.stabs "size_t:t(5,46)=(0,4)",128,0,188,0
.stabs "ssize_t:t(5,47)=(0,1)",128,0,193,0
.stabs "time_t:t(5,48)=(0,3)",128,0,199,0
.stabs "clock_t:t(5,49)=(0,3)",128,0,204,0
.stabs "clockid_t:t(5,50)=(0,1)",128,0,209,0
.stabs "timer_t:t(5,51)=(0,1)",128,0,214,0
.stabs "unchar:t(5,52)=(0,11)",128,0,220,0
.stabs "ushort:t(5,53)=(0,9)",128,0,221,0
.stabs "uint:t(5,54)=(0,4)",128,0,222,0
.stabs "ulong:t(5,55)=(0,5)",128,0,223,0
.stabs "hostid_t:t(5,56)=(0,3)",128,0,260,0
.stabs "u_char:t(5,57)=(0,11)",128,0,270,0
.stabs "u_short:t(5,58)=(0,9)",128,0,271,0
.stabs "u_int:t(5,59)=(0,4)",128,0,272,0
.stabs "u_long:t(5,60)=(0,5)",128,0,273,0
.stabs "_quad:T(5,61)=s8val:(5,62)=ar(0,0);0;1;(0,3),0,64;;",128,0,0,0
.stabs "quad:t(5,63)=(5,61)",128,0,274,0
.stabs "/usr/include/sys/select.h",130,0,0,0
.stabs "/usr/include/sys/time.h",130,0,0,0
.stabs "timeval:T(8,1)=s8tv_sec:(0,3),0,32;tv_usec:(0,3),32,32;;",128,0,0,0
.stabs "timezone:T(8,2)=s8tz_minuteswest:(0,1),0,32;tz_dsttime:(0,1),32,32;;",128,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/types.h",130,0,0,0
.stabn 162,0,0,0
.stabs "itimerval:T(8,3)=s16it_interval:(8,1),0,64;it_value:(8,1),64,64;;",128,0,0,0
.stabs "timespec:T(8,4)=s8tv_sec:(5,48),0,32;tv_nsec:(0,3),32,32;;",128,0,0,0
.stabs "timespec_t:t(8,5)=(8,4)",128,0,160,0
.stabs "timestruc_t:t(8,6)=(8,4)",128,0,162,0
.stabs "itimerspec:T(8,7)=s16it_interval:(8,4),0,64;it_value:(8,4),64,64;;",128,0,0,0
.stabs "itimerspec_t:t(8,8)=(8,7)",128,0,192,0
.stabs "hrtime_t:t(8,9)=(5,16)",128,0,198,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/time.h",130,0,0,0
.stabs "tm:T(10,1)=s36tm_sec:(0,1),0,32;tm_min:(0,1),32,32;tm_hour:(0,1),64,32;tm_mday:(0,1),96,32;tm_mon:(0,1),128,32;tm_year:(0,1),160,32;tm_wday:(0,1),192,32;tm_yday:(0,1),224,32;tm_isdst:(0,1),256,32;;",128,0,0,0
.stabs "/usr/include/sys/time.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/usr/include/sys/siginfo.h",130,0,0,0
.stabs "sigval:T(12,1)=u4sival_int:(0,1),0,32;sival_ptr:(12,2)=*(0,19),0,32;;",128,0,0,0
.stabs "sigevent:T(12,3)=s24sigev_notify:(0,1),0,32;_sigev_un:(12,4)=u4_sigev_signo:(0,1),0,32;_sigev_notify_function:(12,5)=*(12,6)=f(0,19),0,32;;,32,32;sigev_value:(12,1),64,32;_sigev_pad1:(0,1),96,32;_sigev_notify_attributes:(12,2),128,32;_sigev_pad2:(0,1),160,32;;",128,0,0,0
.stabs "/usr/include/sys/machsig.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/usr/include/sys/time.h",130,0,0,0
.stabn 162,0,0,0
.stabs "siginfo:T(12,7)=s128si_signo:(0,1),0,32;si_code:(0,1),32,32;si_errno:(0,1),64,32;_data:(12,8)=u116_pad:(12,9)=ar(0,0);0;28;(0,1),0,928;_proc:(12,10)=s16_pid:(5,45),0,32;_pdata:(12,11)=u12_kill:(12,12)=s8_uid:(5,40),0,32;_value:(12,1),32,32;;,0,64;_cld:(12,13)=s12_utime:(5,49),0,32;_status:(0,1),32,32;_stime:(5,49),64,32;;,0,96;;,32,96;;,0,128;_fault:(12,14)=s8_addr:(5,5),0,32;_trapno:(0,1),32,32;;,0,64;_file:(12,15)=s8_fd:(0,1),0,32;_band:(0,3),32,32;;,0,64;_prof:(12,16)=s116_faddr:(5,5),0,32;_tstamp:(8,6),32,64;\\",128,0,0,0
.stabs "_syscall:(0,8),96,16;_nsysarg:(0,2),112,8;_fault:(0,2),120,8;_sysarg:(12,17)=ar(0,0);0;7;(0,3),128,256;_mstate:(12,18)=ar(0,0);0;16;(0,3),384,544;;,0,928;;,96,928;;",128,0,0,0
.stabs "siginfo_t:t(12,19)=(12,7)",128,0,179,0
.stabs "k_siginfo:T(12,20)=s28si_signo:(0,1),0,32;si_code:(0,1),32,32;si_errno:(0,1),64,32;_data:(12,21)=u16_proc:(12,22)=s16_pid:(5,45),0,32;_pdata:(12,23)=u12_kill:(12,24)=s8_uid:(5,40),0,32;_value:(12,1),32,32;;,0,64;_cld:(12,25)=s12_utime:(5,49),0,32;_status:(0,1),32,32;_stime:(5,49),64,32;;,0,96;;,32,96;;,0,128;_fault:(12,26)=s8_addr:(5,5),0,32;_trapno:(0,1),32,32;;,0,64;_file:(12,27)=s8_fd:(0,1),0,32;_band:(0,3),32,32;;,0,64;_prof:(12,28)=s16_faddr:(5,5),0,32;_tstamp:(8,6),32,64;_syscall:(0,8),96,16;_nsysarg:(0,2),112,8;\\",128,0,0,0
.stabs "_fault:(0,2),120,8;;,0,128;;,96,128;;",128,0,0,0
.stabs "k_siginfo_t:t(12,29)=(12,20)",128,0,234,0
.stabs "sigqueue:T(12,30)=s40sq_next:(12,31)=*(12,30),0,32;sq_info:(12,29),32,224;sq_func:(12,32)=*(12,33)=f(0,19),256,32;sq_backptr:(12,2),288,32;;",128,0,0,0
.stabs "sigqueue_t:t(12,34)=(12,30)",128,0,242,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "fd_mask:t(7,1)=(0,3)",128,0,35,0
.stabs "fd_set:T(7,2)=s128fds_bits:(7,3)=ar(0,0);0;31;(7,1),0,1024;;",128,0,0,0
.stabs "fd_set:t(7,4)=(7,2)",128,0,43,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/mman.h",130,0,0,0
.stabn 162,0,0,0
.stabs "/seth-spare/egcs-1.0.1/OBJ/gcc/include/sys/stat.h",130,0,0,0
.stabs "stat:T(16,1)=s136st_dev:(5,43),0,32;st_pad1:(16,2)=ar(0,0);0;2;(0,3),32,96;st_ino:(5,44),128,32;st_mode:(5,39),160,32;st_nlink:(5,42),192,32;st_uid:(5,40),224,32;st_gid:(5,41),256,32;st_rdev:(5,43),288,32;st_pad2:(5,62),320,64;st_size:(5,8),384,32;st_pad3:(0,3),416,32;st_atim:(8,6),448,64;st_mtim:(8,6),512,64;st_ctim:(8,6),576,64;st_blksize:(0,3),640,32;st_blocks:(0,3),672,32;st_fstype:(16,3)=ar(0,0);0;15;(0,2),704,128;st_pad4:(12,17),832,256;;",128,0,0,0
.stabn 162,0,0,0
.stabs "/usr/include/fcntl.h",130,0,0,0
.stabs "/usr/include/sys/fcntl.h",130,0,0,0
.stabs "flock:T(18,1)=s36l_type:(0,8),0,16;l_whence:(0,8),16,16;l_start:(5,8),32,32;l_len:(5,8),64,32;l_sysid:(0,3),96,32;l_pid:(5,45),128,32;l_pad:(18,2)=ar(0,0);0;3;(0,3),160,128;;",128,0,0,0
.stabs "flock_t:t(18,3)=(18,1)",128,0,122,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.align 4
.stabs "f:F(0,1)",36,0,29,f
.stabs "s:P(0,1)",64,0,28,8
.stabs "p:P(5,6)",64,0,28,9
.global f
.type f,#function
.proc 04
f:
.stabn 68,0,29,.LM1-f
.LM1:
!#PROLOGUE# 0
!#PROLOGUE# 1
.stabn 68,0,30,.LM2-f
.LM2:
.LLBB2:
.stabn 68,0,31,.LM3-f
.LM3:
cmp %o0,0
bl .LL3
add %o1,40,%g2
mov -2,%g3
add %o0,%o1,%o0
cmp %o0,%g2
.LL8:
bgeu .LL3
nop
.stabn 68,0,33,.LM4-f
.LM4:
stb %g3,[%o0]
.stabn 68,0,31,.LM5-f
.LM5:
add %o0,1,%o0
cmp %o0,%o1
bge .LL8
cmp %o0,%g2
.LL3:
.stabn 68,0,35,.LM6-f
.LM6:
.LLBE2:
retl
nop
.LLfe1:
.size f,.LLfe1-f
.stabs "i:r(0,1)",64,0,30,8
.stabn 192,0,0,.LLBB2-f
.stabn 224,0,0,.LLBE2-f
.LLscope0:
.stabs "",36,0,0,.LLscope0-f
.section ".rodata"
.align 8
.LLC0:
.asciz "/dev/zero"
.section ".text"
.align 4
.stabs "main:F(0,1)",36,0,38,main
.global main
.type main,#function
.proc 04
main:
.stabn 68,0,38,.LM7-main
.LM7:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
.stabn 68,0,40,.LM8-main
.LM8:
.LLBB3:
.stabn 68,0,43,.LM9-main
.LM9:
sethi %hi(.LLC0),%o0
or %o0,%lo(.LLC0),%o0
call open,0
mov 0,%o1
mov %o0,%o4
.stabn 68,0,47,.LM10-main
.LM10:
sethi %hi(2147450880),%o0
sethi %hi(65536),%o1
mov 3,%o2
mov 18,%o3
call mmap,0
mov 0,%o5
mov %o0,%l0
.stabn 68,0,49,.LM11-main
.LM11:
cmp %l0,-1
be .LL11
sethi %hi(32766),%o0
.stabn 68,0,51,.LM12-main
.LM12:
or %o0,%lo(32766),%o0
add %l0,%o0,%l0
.stabn 68,0,52,.LM13-main
.LM13:
stb %g0,[%l0+39]
.stabn 68,0,53,.LM14-main
.LM14:
mov 0,%o0
call f,0
mov %l0,%o1
.stabn 68,0,54,.LM15-main
.LM15:
ldsb [%l0+39],%o0
cmp %o0,-2
be,a .LL12
stb %g0,[%l0+39]
.stabn 68,0,55,.LM16-main
.LM16:
call abort,0
nop
.LL12:
.stabn 68,0,57,.LM17-main
.LM17:
mov -1,%o0
call f,0
mov %l0,%o1
.stabn 68,0,58,.LM18-main
.LM18:
ldsb [%l0+39],%o0
cmp %o0,0
be .LL11
nop
.stabn 68,0,59,.LM19-main
.LM19:
call abort,0
nop
.LL11:
.stabn 68,0,62,.LM20-main
.LM20:
call exit,0
mov 0,%o0
.stabn 68,0,63,.LM21-main
.LM21:
.LLBE3:
ret
restore
.LLfe2:
.size main,.LLfe2-main
.stabs "p:r(5,6)",64,0,40,16
.stabs "dev_zero:r(0,1)",64,0,41,12
.stabn 192,0,0,.LLBB3-main
.stabn 224,0,0,.LLBE3-main
.LLscope1:
.stabs "",36,0,0,.LLscope1-main
.stabs "",100,0,0,.Letext
.Letext:
.ident "GCC: (GNU) egcs-2.90.23 980102 (egcs-1.0.1 release)"
Reading specs from /jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
/jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=90 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__OPTIMIZE__ -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) loop-2f.c /var/tmp/cca003AI.i
GNU CPP version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/jazznet/encap/egcs-1.0.1/sparc-sun-solaris2.5.1/include
/jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/include
/usr/include
End of search list.
/jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/cc1 /var/tmp/cca003AI.i -quiet -dumpbase loop-2f.c -O2 -version -o /var/tmp/cca003AI.s
GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release) (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release).
/usr/ccs/bin/as -V -Qy -s -o /var/tmp/cca003AI1.o /var/tmp/cca003AI.s
/usr/ccs/bin/as: SC4.2 dev 30 Nov 1995
/jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy /jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/crt1.o /jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/crti.o /usr/ccs/lib/values-Xa.o /jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/crtbegin.o -L/jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23 -L/jazznet/encap/egcs-1.0.1/sparc-sun-solaris2.5.1/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/jazznet/encap/egcs-1.0.1/lib /var/tmp/cca003AI1.o -lgcc -lc -lgcc /jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/crtend.o /jazznet/encap/egcs-1.0.1/lib/gcc-lib/sparc-sun-solaris2.5.1/egcs-2.90.23/crtn.o
ld: Software Generation Utilities (SGU) SunOS/ELF (LK-2.0 (S/I) - versioning)