public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* Re: Bugreport on g77-2.95 19990629 (prerelease)
1999-07-31 23:33 Bugreport on g77-2.95 19990629 (prerelease) Mathias Froehlich
@ 1999-07-05 14:11 ` craig
1999-07-06 4:38 ` Mathias Froehlich
1999-08-31 22:45 ` Jeffrey A Law
1 sibling, 1 reply; 7+ messages in thread
From: craig @ 1999-07-05 14:11 UTC (permalink / raw)
To: frohlich; +Cc: craig
>I have probably found a bug in g77-2.95 19990629 (prerelease)
>(i686-pc-linux-gnu). I use a RedHat-6.0 system.
>
>The file sgeqpf.f from LAPACK (you can find it in the SRC
>subdirectory of the LAPACK source tree) seem to be misscompiled using
>this and many previous versions of egcs.
>
>I can observe an infinite loop while executing
[...]
>If you have further questions feel free to contact me.
Could you please debug the program? Until you, or someone else,
does that, it's not clear that the problem is miscompiled code --
it might be buggy code that gets compiled "correctly", just differently,
in a way that exposes the bug.
The g77 docs provide further information on how to report bugs.
tq vm, (burley)
>From craig@jcb-sc.com Mon Jul 05 14:11:00 1999
From: craig@jcb-sc.com
To: oliva@dcc.unicamp.br
Cc: craig@jcb-sc.com
Subject: Re: Too many warnings.
Date: Mon, 05 Jul 1999 14:11:00 -0000
Message-id: <19990705210849.2329.qmail@deer>
References: <199907021435.KAA17593@jaj.com> <199907021536.RAA00632@gibraltar.carmen.se> <or908x4p9k.fsf@cupuacu.lsd.dcc.unicamp.br> <or908x4p9k.fsf@cupuacu.lsd.dcc.unicamp.br>
X-SW-Source: 1999-07/msg00186.html
Content-length: 1086
>On Jul 2, 1999, Gvran Uddeborg <uddeborg@carmen.se> wrote:
>
>> I do understand that there is a value being ignored here. But that is
>> true for the statement
>
>> i=1;
>
>> too.
>
>But this is so common that it wouldn't make sense to issue a warning
>in this case.
The point is not that it is common, rather that the *purpose* of `=' is
to perform a "side effect", i.e. of modifying one of its operands.
So, as a "zero-level" operator in a statement, `=' *does* have an effect,
regardless of whether any of its *operands* has (side) effects.
`&&' does not modify its operands, so, as the only zero-level operator in
a statement, it is entirely appropriate that gcc warn about the statement
having, at its zero level anyway, no effect. (Perhaps the diagnostic
could be clarified?)
tq vm, (burley)
P.S. By "zero-level" I mean that, in "i++ && (j=84);", `&&' is the
zero-level operator, while `++' and `=' are one-level operators, i.e.
they're a level further away from the top, or zero, level of the
AST resulting from a canonical parse of this particular statement.
>From craig@jcb-sc.com Mon Jul 05 14:11:00 1999
From: craig@jcb-sc.com
To: bhoel@server.python.net
Cc: craig@jcb-sc.com
Subject: Re: bug in snapshot 19990629
Date: Mon, 05 Jul 1999 14:11:00 -0000
Message-id: <19990705211029.2343.qmail@deer>
References: <377DF21C.A033BA12@starship.python.net> <377DF21C.A033BA12@starship.python.net>
X-SW-Source: 1999-07/msg00185.html
Content-length: 448
>I think I've come over a Bug in egcs snapshot 19990629 while trying to
[...]
>This error seems to be fixed in 19990629.
I'm confused. Is the bug fixed in 19990629, or present in it?
Also, I don't read MIME attachments, unless there's absolutely no
alternative. Please use plaintext for bug reports, patches, etc.,
whenever possible. (I think we only recently updated our web site
to make this request more explicit.)
tq vm, (burley)
>From craig@jcb-sc.com Mon Jul 05 14:12:00 1999
From: craig@jcb-sc.com
To: egdorf@zaphod.lanl.gov (Skip Egdorf)
Cc: craig@jcb-sc.com
Subject: Re: [egdorf@zaphod.lanl.gov (Skip Egdorf)] g77 rewind bug
Date: Mon, 05 Jul 1999 14:12:00 -0000
Message-id: <19990705205552.2138.qmail@deer>
References: <rzqn1xb580n.fsf@djlvig.dl.ac.uk> <rzqn1xb580n.fsf@djlvig.dl.ac.uk>
X-SW-Source: 1999-07/msg00188.html
Content-length: 631
>Your patch mentioned above seems to be suspiciously similar to what I am
>seeing. Could you send me some more details on what the problem was with
>rewind and scratch files? Any other hints on where I should look??
I'm not sure, but I *think* this problem might have already been found
and fixed for gcc 2.95, aka egcs 1.2, which should be released very
soon (maybe around this weekend). If you want to try a prerelease
(snapshot or CVS-readonly checkout), or need other info on EGCS, see:
< http://egcs.cygnus.com/ >
Also, I have a little g77 web page at < http://world.std.com/~burley/g77.html >.
tq vm, (burley)
>From toon@moene.indiv.nluug.nl Mon Jul 05 14:25:00 1999
From: toon@moene.indiv.nluug.nl
To: egcs-bugs@egcs.cygnus.com
Subject: Re: Bugreport on g77-2.95 19990629 (prerelease)
Date: Mon, 05 Jul 1999 14:25:00 -0000
Message-id: <199907052124.XAA15326@moene.indiv.nluug.nl>
X-SW-Source: 1999-07/msg00189.html
Content-length: 16610
I was able to reproduce Mathias findings as follows
- I compiled all of LAPACK with -O2 -g
- This passes the test
- Then I compiled sgeqpf.f with -O2 -g -march=i686 - hang
=======================================================
cat sgeqpf.f
SUBROUTINE SGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO )
*
* -- LAPACK test routine (version 2.0) --
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
* Courant Institute, Argonne National Lab, and Rice University
* March 31, 1993
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, M, N
* ..
* .. Array Arguments ..
INTEGER JPVT( * )
REAL A( LDA, * ), TAU( * ), WORK( * )
* ..
*
* Purpose
* =======
*
* SGEQPF computes a QR factorization with column pivoting of a
* real M-by-N matrix A: A*P = Q*R.
*
* Arguments
* =========
*
* M (input) INTEGER
* The number of rows of the matrix A. M >= 0.
*
* N (input) INTEGER
* The number of columns of the matrix A. N >= 0
*
* A (input/output) REAL array, dimension (LDA,N)
* On entry, the M-by-N matrix A.
* On exit, the upper triangle of the array contains the
* min(M,N)-by-N upper triangular matrix R; the elements
* below the diagonal, together with the array TAU,
* represent the orthogonal matrix Q as a product of
* min(m,n) elementary reflectors.
*
* LDA (input) INTEGER
* The leading dimension of the array A. LDA >= max(1,M).
*
* JPVT (input/output) INTEGER array, dimension (N)
* On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted
* to the front of A*P (a leading column); if JPVT(i) = 0,
* the i-th column of A is a free column.
* On exit, if JPVT(i) = k, then the i-th column of A*P
* was the k-th column of A.
*
* TAU (output) REAL array, dimension (min(M,N))
* The scalar factors of the elementary reflectors.
*
* WORK (workspace) REAL array, dimension (3*N)
*
* INFO (output) INTEGER
* = 0: successful exit
* < 0: if INFO = -i, the i-th argument had an illegal value
*
* Further Details
* ===============
*
* The matrix Q is represented as a product of elementary reflectors
*
* Q = H(1) H(2) . . . H(n)
*
* Each H(i) has the form
*
* H = I - tau * v * v'
*
* where tau is a real scalar, and v is a real vector with
* v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i).
*
* The matrix P is represented in jpvt as follows: If
* jpvt(j) = i
* then the jth column of P is the ith canonical unit vector.
*
* =====================================================================
*
* .. Parameters ..
REAL ZERO, ONE
PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 )
* ..
* .. Local Scalars ..
INTEGER I, ITEMP, J, MA, MN, PVT
REAL AII, TEMP, TEMP2
* ..
* .. External Subroutines ..
EXTERNAL SGEQR2, SLARF, SLARFG, SORM2R, SSWAP, XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN, SQRT
* ..
* .. External Functions ..
INTEGER ISAMAX
REAL SNRM2
EXTERNAL ISAMAX, SNRM2
* ..
* .. Executable Statements ..
*
* Test the input arguments
*
INFO = 0
IF( M.LT.0 ) THEN
INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
ELSE IF( LDA.LT.MAX( 1, M ) ) THEN
INFO = -4
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'SGEQPF', -INFO )
RETURN
END IF
*
MN = MIN( M, N )
*
* Move initial columns up front
*
ITEMP = 1
DO 10 I = 1, N
IF( JPVT( I ).NE.0 ) THEN
IF( I.NE.ITEMP ) THEN
CALL SSWAP( M, A( 1, I ), 1, A( 1, ITEMP ), 1 )
JPVT( I ) = JPVT( ITEMP )
JPVT( ITEMP ) = I
ELSE
JPVT( I ) = I
END IF
ITEMP = ITEMP + 1
ELSE
JPVT( I ) = I
END IF
10 CONTINUE
ITEMP = ITEMP - 1
*
* Compute the QR factorization and update remaining columns
*
IF( ITEMP.GT.0 ) THEN
MA = MIN( ITEMP, M )
CALL SGEQR2( M, MA, A, LDA, TAU, WORK, INFO )
IF( MA.LT.N ) THEN
CALL SORM2R( 'Left', 'Transpose', M, N-MA, MA, A, LDA, TAU,
$ A( 1, MA+1 ), LDA, WORK, INFO )
END IF
END IF
*
IF( ITEMP.LT.MN ) THEN
*
* Initialize partial column norms. The first n elements of
* work store the exact column norms.
*
DO 20 I = ITEMP + 1, N
WORK( I ) = SNRM2( M-ITEMP, A( ITEMP+1, I ), 1 )
WORK( N+I ) = WORK( I )
20 CONTINUE
*
* Compute factorization
*
DO 40 I = ITEMP + 1, MN
*
* Determine ith pivot column and swap if necessary
*
PVT = ( I-1 ) + ISAMAX( N-I+1, WORK( I ), 1 )
*
IF( PVT.NE.I ) THEN
CALL SSWAP( M, A( 1, PVT ), 1, A( 1, I ), 1 )
ITEMP = JPVT( PVT )
JPVT( PVT ) = JPVT( I )
JPVT( I ) = ITEMP
WORK( PVT ) = WORK( I )
WORK( N+PVT ) = WORK( N+I )
END IF
*
* Generate elementary reflector H(i)
*
IF( I.LT.M ) THEN
CALL SLARFG( M-I+1, A( I, I ), A( I+1, I ), 1, TAU( I ) )
ELSE
CALL SLARFG( 1, A( M, M ), A( M, M ), 1, TAU( M ) )
END IF
*
IF( I.LT.N ) THEN
*
* Apply H(i) to A(i:m,i+1:n) from the left
*
AII = A( I, I )
A( I, I ) = ONE
CALL SLARF( 'LEFT', M-I+1, N-I, A( I, I ), 1, TAU( I ),
$ A( I, I+1 ), LDA, WORK( 2*N+1 ) )
A( I, I ) = AII
END IF
*
* Update partial column norms
*
DO 30 J = I + 1, N
IF( WORK( J ).NE.ZERO ) THEN
TEMP = ONE - ( ABS( A( I, J ) ) / WORK( J ) )**2
TEMP = MAX( TEMP, ZERO )
TEMP2 = ONE + 0.05*TEMP*( WORK( J ) / WORK( N+J ) )**2
IF( TEMP2.EQ.ONE ) THEN
IF( M-I.GT.0 ) THEN
WORK( J ) = SNRM2( M-I, A( I+1, J ), 1 )
WORK( N+J ) = WORK( J )
ELSE
WORK( J ) = ZERO
WORK( N+J ) = ZERO
END IF
ELSE
WORK( J ) = WORK( J )*SQRT( TEMP )
END IF
END IF
30 CONTINUE
*
40 CONTINUE
END IF
RETURN
*
* End of SGEQPF
*
END
=======================================================
diff sgeqpf.s.noi686 sgeqpf.s.i686
93,96c93
< movl (%eax),%edx
< leal 0(,%edx,4),%ecx
< movl %ecx,-56(%ebp)
< .stabn 68,0,102,.LM2-sgeqpf_
---
> .stabn 68,0,101,.LM2-sgeqpf_
98,100d94
< movl 8(%ebp),%ecx
< .stabn 68,0,101,.LM3-sgeqpf_
< .LM3:
102c96,98
< movl $0,(%ebx)
---
> .stabn 68,0,1,.LM3-sgeqpf_
> .LM3:
> movl (%eax),%ecx
105,108c101,102
< movl (%ecx),%eax
< testl %eax,%eax
< jge .L3
< .stabn 68,0,103,.LM5-sgeqpf_
---
> movl 8(%ebp),%eax
> .stabn 68,0,1,.LM5-sgeqpf_
110,111c104,106
< movl $-1,(%ebx)
< .stabn 68,0,104,.LM6-sgeqpf_
---
> leal 0(,%ecx,4),%edx
> movl %edx,-56(%ebp)
> .stabn 68,0,101,.LM6-sgeqpf_
112a108,118
> movl $0,(%ebx)
> .stabn 68,0,102,.LM7-sgeqpf_
> .LM7:
> movl (%eax),%edx
> testl %edx,%edx
> jge .L3
> .stabn 68,0,103,.LM8-sgeqpf_
> .LM8:
> movl $-1,(%ebx)
> .stabn 68,0,104,.LM9-sgeqpf_
> .LM9:
119,120c125,126
< .stabn 68,0,105,.LM7-sgeqpf_
< .LM7:
---
> .stabn 68,0,105,.LM10-sgeqpf_
> .LM10:
123,124c129,130
< .stabn 68,0,106,.LM8-sgeqpf_
< .LM8:
---
> .stabn 68,0,106,.LM11-sgeqpf_
> .LM11:
128,129d133
< cmpl $1,%eax
< jge .L8
131,132c135,137
< .L8:
< cmpl %eax,%edx
---
> testl %edx,%edx
> cmovg %edx,%eax
> cmpl %eax,%ecx
134,135c139,140
< .stabn 68,0,107,.LM9-sgeqpf_
< .LM9:
---
> .stabn 68,0,107,.LM12-sgeqpf_
> .LM12:
139,140c144,145
< .stabn 68,0,109,.LM10-sgeqpf_
< .LM10:
---
> .stabn 68,0,109,.LM13-sgeqpf_
> .LM13:
145,146c150,151
< .stabn 68,0,110,.LM11-sgeqpf_
< .LM11:
---
> .stabn 68,0,110,.LM14-sgeqpf_
> .LM14:
155,156c160,161
< .stabn 68,0,111,.LM12-sgeqpf_
< .LM12:
---
> .stabn 68,0,111,.LM15-sgeqpf_
> .LM15:
160,161c165,167
< .stabn 68,0,114,.LM13-sgeqpf_
< .LM13:
---
> .stabn 68,0,114,.LM16-sgeqpf_
> .LM16:
> .LBB3:
165d170
< movl %ebx,-68(%ebp)
167,173c172,176
< cmpl %eax,%ebx
< jle .L10
< movl %eax,-68(%ebp)
< .L10:
< .stabn 68,0,118,.LM14-sgeqpf_
< .LM14:
< .LBB3:
---
> cmpl %eax,-68(%ebp)
> cmovg %eax,%ebx
> movl %ebx,-68(%ebp)
> .stabn 68,0,118,.LM17-sgeqpf_
> .LM17:
175,176c178,179
< .stabn 68,0,119,.LM15-sgeqpf_
< .LM15:
---
> .stabn 68,0,119,.LM18-sgeqpf_
> .LM18:
187,188c190,191
< .stabn 68,0,120,.LM16-sgeqpf_
< .LM16:
---
> .stabn 68,0,120,.LM19-sgeqpf_
> .LM19:
191,192c194,195
< .stabn 68,0,121,.LM17-sgeqpf_
< .LM17:
---
> .stabn 68,0,121,.LM20-sgeqpf_
> .LM20:
196,197c199,200
< .stabn 68,0,122,.LM18-sgeqpf_
< .LM18:
---
> .stabn 68,0,122,.LM21-sgeqpf_
> .LM21:
207,208c210,211
< .stabn 68,0,123,.LM19-sgeqpf_
< .LM19:
---
> .stabn 68,0,123,.LM22-sgeqpf_
> .LM22:
211,212c214,215
< .stabn 68,0,124,.LM20-sgeqpf_
< .LM20:
---
> .stabn 68,0,124,.LM23-sgeqpf_
> .LM23:
215,216c218,219
< .stabn 68,0,125,.LM21-sgeqpf_
< .LM21:
---
> .stabn 68,0,125,.LM24-sgeqpf_
> .LM24:
221,222c224,225
< .stabn 68,0,126,.LM22-sgeqpf_
< .LM22:
---
> .stabn 68,0,126,.LM25-sgeqpf_
> .LM25:
226,227c229,230
< .stabn 68,0,128,.LM23-sgeqpf_
< .LM23:
---
> .stabn 68,0,128,.LM26-sgeqpf_
> .LM26:
232,233c235,236
< .stabn 68,0,129,.LM24-sgeqpf_
< .LM24:
---
> .stabn 68,0,129,.LM27-sgeqpf_
> .LM27:
237,238c240,241
< .stabn 68,0,130,.LM25-sgeqpf_
< .LM25:
---
> .stabn 68,0,130,.LM28-sgeqpf_
> .LM28:
241,242c244,245
< .stabn 68,0,132,.LM26-sgeqpf_
< .LM26:
---
> .stabn 68,0,132,.LM29-sgeqpf_
> .LM29:
251,252c254,255
< .stabn 68,0,133,.LM27-sgeqpf_
< .LM27:
---
> .stabn 68,0,133,.LM30-sgeqpf_
> .LM30:
254,255c257,258
< .stabn 68,0,137,.LM28-sgeqpf_
< .LM28:
---
> .stabn 68,0,137,.LM31-sgeqpf_
> .LM31:
258,259c261,262
< .stabn 68,0,138,.LM29-sgeqpf_
< .LM29:
---
> .stabn 68,0,138,.LM32-sgeqpf_
> .LM32:
268,269c271,272
< .stabn 68,0,139,.LM30-sgeqpf_
< .LM30:
---
> .stabn 68,0,139,.LM33-sgeqpf_
> .LM33:
286,287c289,290
< .stabn 68,0,140,.LM31-sgeqpf_
< .LM31:
---
> .stabn 68,0,140,.LM34-sgeqpf_
> .LM34:
294,295c297,298
< .stabn 68,0,141,.LM32-sgeqpf_
< .LM32:
---
> .stabn 68,0,141,.LM35-sgeqpf_
> .LM35:
325,326c328,329
< .stabn 68,0,143,.LM33-sgeqpf_
< .LM33:
---
> .stabn 68,0,143,.LM36-sgeqpf_
> .LM36:
329,330c332,333
< .stabn 68,0,146,.LM34-sgeqpf_
< .LM34:
---
> .stabn 68,0,146,.LM37-sgeqpf_
> .LM37:
334,335c337,338
< .stabn 68,0,151,.LM35-sgeqpf_
< .LM35:
---
> .stabn 68,0,151,.LM38-sgeqpf_
> .LM38:
362,363c365,366
< .stabn 68,0,152,.LM36-sgeqpf_
< .LM36:
---
> .stabn 68,0,152,.LM39-sgeqpf_
> .LM39:
377,378c380,381
< .stabn 68,0,153,.LM37-sgeqpf_
< .LM37:
---
> .stabn 68,0,153,.LM40-sgeqpf_
> .LM40:
383,384c386,387
< .stabn 68,0,154,.LM38-sgeqpf_
< .LM38:
---
> .stabn 68,0,154,.LM41-sgeqpf_
> .LM41:
386,387c389,390
< .stabn 68,0,153,.LM39-sgeqpf_
< .LM39:
---
> .stabn 68,0,153,.LM42-sgeqpf_
> .LM42:
390,391c393,394
< .stabn 68,0,154,.LM40-sgeqpf_
< .LM40:
---
> .stabn 68,0,154,.LM43-sgeqpf_
> .LM43:
398,399c401,402
< .stabn 68,0,158,.LM41-sgeqpf_
< .LM41:
---
> .stabn 68,0,158,.LM44-sgeqpf_
> .LM44:
427,428c430,431
< .stabn 68,0,162,.LM42-sgeqpf_
< .LM42:
---
> .stabn 68,0,162,.LM45-sgeqpf_
> .LM45:
447,448c450,451
< .stabn 68,0,164,.LM43-sgeqpf_
< .LM43:
---
> .stabn 68,0,164,.LM46-sgeqpf_
> .LM46:
453,454c456,457
< .stabn 68,0,165,.LM44-sgeqpf_
< .LM44:
---
> .stabn 68,0,165,.LM47-sgeqpf_
> .LM47:
470,471c473,474
< .stabn 68,0,166,.LM45-sgeqpf_
< .LM45:
---
> .stabn 68,0,166,.LM48-sgeqpf_
> .LM48:
473,474c476,477
< .stabn 68,0,167,.LM46-sgeqpf_
< .LM46:
---
> .stabn 68,0,167,.LM49-sgeqpf_
> .LM49:
476,477c479,480
< .stabn 68,0,166,.LM47-sgeqpf_
< .LM47:
---
> .stabn 68,0,166,.LM50-sgeqpf_
> .LM50:
481,482c484,485
< .stabn 68,0,167,.LM48-sgeqpf_
< .LM48:
---
> .stabn 68,0,167,.LM51-sgeqpf_
> .LM51:
485,486c488,489
< .stabn 68,0,168,.LM49-sgeqpf_
< .LM49:
---
> .stabn 68,0,168,.LM52-sgeqpf_
> .LM52:
489,490c492,493
< .stabn 68,0,169,.LM50-sgeqpf_
< .LM50:
---
> .stabn 68,0,169,.LM53-sgeqpf_
> .LM53:
492,493c495,496
< .stabn 68,0,171,.LM51-sgeqpf_
< .LM51:
---
> .stabn 68,0,171,.LM54-sgeqpf_
> .LM54:
495,496c498,499
< .stabn 68,0,170,.LM52-sgeqpf_
< .LM52:
---
> .stabn 68,0,170,.LM55-sgeqpf_
> .LM55:
498,499c501,502
< .stabn 68,0,169,.LM53-sgeqpf_
< .LM53:
---
> .stabn 68,0,169,.LM56-sgeqpf_
> .LM56:
502,503c505,506
< .stabn 68,0,170,.LM54-sgeqpf_
< .LM54:
---
> .stabn 68,0,170,.LM57-sgeqpf_
> .LM57:
512,513c515,516
< .stabn 68,0,175,.LM55-sgeqpf_
< .LM55:
---
> .stabn 68,0,175,.LM58-sgeqpf_
> .LM58:
518,519c521,522
< .stabn 68,0,176,.LM56-sgeqpf_
< .LM56:
---
> .stabn 68,0,176,.LM59-sgeqpf_
> .LM59:
538,539c541,542
< .stabn 68,0,177,.LM57-sgeqpf_
< .LM57:
---
> .stabn 68,0,177,.LM60-sgeqpf_
> .LM60:
543,544c546,547
< .stabn 68,0,178,.LM58-sgeqpf_
< .LM58:
---
> .stabn 68,0,178,.LM61-sgeqpf_
> .LM61:
560,561c563,564
< .stabn 68,0,179,.LM59-sgeqpf_
< .LM59:
---
> .stabn 68,0,179,.LM62-sgeqpf_
> .LM62:
563,564c566,567
< .stabn 68,0,181,.LM60-sgeqpf_
< .LM60:
---
> .stabn 68,0,181,.LM63-sgeqpf_
> .LM63:
569,570c572,573
< .stabn 68,0,185,.LM61-sgeqpf_
< .LM61:
---
> .stabn 68,0,185,.LM64-sgeqpf_
> .LM64:
574,575c577,578
< .stabn 68,0,187,.LM62-sgeqpf_
< .LM62:
---
> .stabn 68,0,187,.LM65-sgeqpf_
> .LM65:
578,579c581,582
< .stabn 68,0,185,.LM63-sgeqpf_
< .LM63:
---
> .stabn 68,0,185,.LM66-sgeqpf_
> .LM66:
582,583c585,586
< .stabn 68,0,186,.LM64-sgeqpf_
< .LM64:
---
> .stabn 68,0,186,.LM67-sgeqpf_
> .LM67:
585,586c588,589
< .stabn 68,0,187,.LM65-sgeqpf_
< .LM65:
---
> .stabn 68,0,187,.LM68-sgeqpf_
> .LM68:
622,623c625,626
< .stabn 68,0,189,.LM66-sgeqpf_
< .LM66:
---
> .stabn 68,0,189,.LM69-sgeqpf_
> .LM69:
627,628c630,631
< .stabn 68,0,190,.LM67-sgeqpf_
< .LM67:
---
> .stabn 68,0,190,.LM70-sgeqpf_
> .LM70:
631,632c634,635
< .stabn 68,0,194,.LM68-sgeqpf_
< .LM68:
---
> .stabn 68,0,194,.LM71-sgeqpf_
> .LM71:
671,672c674,675
< .stabn 68,0,195,.LM69-sgeqpf_
< .LM69:
---
> .stabn 68,0,195,.LM72-sgeqpf_
> .LM72:
674,677c677,680
< fucom %st(1)
< fnstsw %ax
< andb $69,%ah
< cmpb $64,%ah
---
> fucomi %st(1),%st
> setne %al
> setp %ah
> orb %al,%ah
679,680c682,683
< .stabn 68,0,196,.LM70-sgeqpf_
< .LM70:
---
> .stabn 68,0,196,.LM73-sgeqpf_
> .LM73:
690,695c693,696
< .stabn 68,0,197,.LM71-sgeqpf_
< .LM71:
< fcom %st(3)
< fnstsw %ax
< andb $5,%ah
< je .L44
---
> .stabn 68,0,197,.LM74-sgeqpf_
> .LM74:
> fcomi %st(3),%st
> jae .L44
700,701c701,702
< .stabn 68,0,198,.LM72-sgeqpf_
< .LM72:
---
> .stabn 68,0,198,.LM75-sgeqpf_
> .LM75:
713,718c714,720
< .stabn 68,0,199,.LM73-sgeqpf_
< .LM73:
< fucompp
< fnstsw %ax
< andb $68,%ah
< xorb $64,%ah
---
> .stabn 68,0,199,.LM76-sgeqpf_
> .LM76:
> fucomip %st(1),%st
> fstp %st(0)
> setne %al
> setp %ah
> orb %al,%ah
721,722c723,724
< .stabn 68,0,200,.LM74-sgeqpf_
< .LM74:
---
> .stabn 68,0,200,.LM77-sgeqpf_
> .LM77:
728,729c730,731
< .stabn 68,0,201,.LM75-sgeqpf_
< .LM75:
---
> .stabn 68,0,201,.LM78-sgeqpf_
> .LM78:
745,746c747,748
< .stabn 68,0,202,.LM76-sgeqpf_
< .LM76:
---
> .stabn 68,0,202,.LM79-sgeqpf_
> .LM79:
750,751c752,753
< .stabn 68,0,203,.LM77-sgeqpf_
< .LM77:
---
> .stabn 68,0,203,.LM80-sgeqpf_
> .LM80:
753,754c755,756
< .stabn 68,0,202,.LM78-sgeqpf_
< .LM78:
---
> .stabn 68,0,202,.LM81-sgeqpf_
> .LM81:
757,758c759,760
< .stabn 68,0,203,.LM79-sgeqpf_
< .LM79:
---
> .stabn 68,0,203,.LM82-sgeqpf_
> .LM82:
763,764c765,766
< .stabn 68,0,204,.LM80-sgeqpf_
< .LM80:
---
> .stabn 68,0,204,.LM83-sgeqpf_
> .LM83:
766,767c768,769
< .stabn 68,0,205,.LM81-sgeqpf_
< .LM81:
---
> .stabn 68,0,205,.LM84-sgeqpf_
> .LM84:
773,774c775,776
< .stabn 68,0,207,.LM82-sgeqpf_
< .LM82:
---
> .stabn 68,0,207,.LM85-sgeqpf_
> .LM85:
778,779c780,781
< .stabn 68,0,208,.LM83-sgeqpf_
< .LM83:
---
> .stabn 68,0,208,.LM86-sgeqpf_
> .LM86:
785,786c787,788
< .stabn 68,0,211,.LM84-sgeqpf_
< .LM84:
---
> .stabn 68,0,211,.LM87-sgeqpf_
> .LM87:
801,802c803,804
< .stabn 68,0,213,.LM85-sgeqpf_
< .LM85:
---
> .stabn 68,0,213,.LM88-sgeqpf_
> .LM88:
811,812c813,814
< .stabn 68,0,215,.LM86-sgeqpf_
< .LM86:
---
> .stabn 68,0,215,.LM89-sgeqpf_
> .LM89:
=======================================================
Any Intel Insider seeing what is wrong ... Toon.
>From todi@scl.ameslab.gov Mon Jul 05 15:39:00 1999
From: Rajat Todi <todi@scl.ameslab.gov>
To: egcs-bugs@egcs.cygnus.com
Subject: Bug Report for EGCS 2.91.66
Date: Mon, 05 Jul 1999 15:39:00 -0000
Message-id: <Pine.SGI.3.95.990705173419.4372D-100000@arachne.scl.ameslab.gov>
X-SW-Source: 1999-07/msg00190.html
Content-length: 5357
Hi,
Here is the bug which I found in the latest version of gcc version
egcs 2.91.66.
Here is the extracted program. I have taken out problem part out
of the bigger code (PABLO from UIUC research).
// main.C
#
#
#include <stream.h>
#include <stdlib.h>
#include <string.h>
#include <values.h>
main( int argc, char **argv ) {
enum Status { INVALID, VALID };
Status inputFileStatus;
int pktCount = 0;
while(1) {
if ( ( ++pktCount % 1000 ) == 0 ) {
cerr << pktCount << "... ";
cerr.flush();
}
}
}
// end of main.C
------------------------------------------------------------------
SUMMARY OF THE BUG
Note that the reason this program is failing is because the
Status datatype has been defined inside the main(). It
take Status outside the main(), compilation is okay.
In my opinion, current C++ standard does not restrict the
definition of enum type to be global. I guess this is a bug.
AGAIN we have a get around...that is to move the enum
defination outside the main() and so if you put it in your
bug list it would be fine.
EXTREMELY PECULIAR BEHAVIOR:
NOTE THAT THIS ONLY HAPPENS WITH THE OPERATOR % or / .
i.e. if you take the while loop out and insert some other
statement it will work. I HAVE NO CLUE WHY....
--------------------------------------------------------------------
RUN RESULT:
Operating System$ uname -a Linux doormouse.alice.scl.ameslab.gov
2.2.10 #3 SMP Thu Jul 1 03:29:37 CDT 1999 i686 unknown
Compilter: gcc version egcs-2.91.66
Program: main.C /usr/bin/g++ -v --save-temps -o FileStats -O main.C
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef
-D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__
-Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__
-D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix)
-D__EXCEPTIONS -D__OPTIMIZE__ -Asystem(unix) -Acpu(i386) -Amachine(i386)
-Di386 -D__i386 -D__i386__ main.C main.ii GNU CPP version egcs-2.91.66
19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF) #include "..." search
starts here: #include <...> search starts here:
/usr/include/g++-2
/usr/i386-redhat-linux/include
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
/usr/include End of search list.
/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus main.ii -quiet
-dumpbase main.cc -O -version -o main.s GNU C++ version egcs-2.91.66
19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C
version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release). main.C: In
function `int main(int, char **)': main.C:23: Internal compiler error.
main.C:23: Please submit a full bug report to `egcs-bugs@egcs.cygnus.com'.
main.C:23: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for
details. [todi@doormouse Build]$ pwd
/home/todi/pablo/Pablo/SDDF/Programs/SDDF/Build [todi@doormouse Build]$
uname -a Linux doormouse.alice.scl.ameslab.gov 2.2.10 #3 SMP Thu Jul 1
03:29:37 CDT 1999 i686 unknown
-----------------------------------------------------------------------
Same program on older OS with NO BUG
Operating System: Linux o 2.0.28 #6 Sat Feb 22 01:56:36 CST 1997 i686
Compiler: gcc version 2.7.2
o~/tmp/pablo%/usr/bin/g++ -v --save-temps -o FileStats -O main.C
/usr/bin/gcc -v --save-temps -o FileStats -O main.C -lg++ -lstdc++ -lm
Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2/specs gcc version
2.7.2
/usr/lib/gcc-lib/i486-linux/2.7.2/cpp -lang-c++ -v -undef -D__GNUC__=2
-D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -D__ELF__ -Dunix -Di386
-Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386
-D__linux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)
-D__OPTIMIZE__ -D__i486__ main.C main.ii GNU CPP version 2.7.2 (i386
Linux/ELF) #include "..." search starts here: #include <...> search starts
here:
/usr/include/g++
/usr/local/include
/usr/i486-linux/include
/usr/lib/gcc-lib/i486-linux/2.7.2/include
/usr/include End of search list.
/usr/lib/gcc-lib/i486-linux/2.7.2/cc1plus main.ii -m486 -malign-loops=2
-malign-jumps=2 -malign-functions=2 -m486 -malign-loops=2 -malign-jumps=2
-malign-functions=2 -quiet -dumpbase main.cc -O -version -o main.s GNU C++
version 2.7.2 (i386 Linux/ELF) compiled by GNU C version 2.7.2.
/usr/i486-linux/bin/as -V -Qy -o main.o main.s GNU assembler version
960425 (i486-linux), using BFD version 2.6.0.14
/usr/i486-linux/bin/ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.1 -o
FileStats /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o
-L/usr/lib/gcc-lib/i486-linux/2.7.2 -L/usr/i486-linux/lib main.o -lg++
-lstdc++ -lm -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
o~/tmp/pablo%ls FileStats* main.C main.ii main.o main.s
-----------------------------------------------------------------------
Please let me know if you want any more detail if you are not
able to reproduce the bug.
I take this opportunity to thank you all for the great work. I hope
we are able to see more optimized version for latest processors.
May the force be with you.
Rajat Todi
todi@acm.org
Scalable Computing Laboratory,
Ames Laboratory,
237 Wilhelm, ISU, Ames, IA 50011-3020
Phone: (515)-294-1918
Mobile: (515)-441-0370 (with voicemail)
Fax: (515)-294-4491
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bugreport on g77-2.95 19990629 (prerelease)
1999-07-05 14:11 ` craig
@ 1999-07-06 4:38 ` Mathias Froehlich
1999-07-07 14:57 ` Toon Moene
0 siblings, 1 reply; 7+ messages in thread
From: Mathias Froehlich @ 1999-07-06 4:38 UTC (permalink / raw)
To: craig; +Cc: egcs-bugs
> >I have probably found a bug in g77-2.95 19990629 (prerelease)
> >(i686-pc-linux-gnu). I use a RedHat-6.0 system.
> >
> >The file sgeqpf.f from LAPACK (you can find it in the SRC
> >subdirectory of the LAPACK source tree) seem to be misscompiled using
> >this and many previous versions of egcs.
> >
> >I can observe an infinite loop while executing
> [...]
> >If you have further questions feel free to contact me.
>
> Could you please debug the program? Until you, or someone else,
> does that, it's not clear that the problem is miscompiled code --
> it might be buggy code that gets compiled "correctly", just differently,
> in a way that exposes the bug.
>
Ok. I have spent some time with that bug. I have traced down which asm
line is buggy. I have fixed the asm output of
g77 -fverbose-asm -Vgcc-2.95 -march=pentiumpro -O2 -c sgeqpf.f
by hand and will present you the diff of that fix. I hope this will
give you enough information to find that egcs bug.
I have appended that diff including some comments from me at the end
of that mail.
> The g77 docs provide further information on how to report bugs.
>
Excuse me if I have ommitted some information. But LAPACK is not easy
to understand and I am not very familar with f77. I do only use this
excelent package and usually test compilers with that huge codebase.
So I thought that it is easier for someone like you to find bugs like
that.
Regards,
Mathias Froehlich
----------------------------------------------------------------------------
###
### Original compiler output Fixed version
###
.file "sgeqpf.f" .file "sgeqpf.f"
.version "01.01" .version "01.01"
/ GNU F77 version gcc-2.95 19990629 ( / GNU F77 version gcc-2.95 19990629 (
/ options passed: -march=pentiumpro / options passed: -march=pentiumpro
/ options enabled: -fdefer-pop -fcse / options enabled: -fdefer-pop -fcse
/ -fexpensive-optimizations -fthread- / -fexpensive-optimizations -fthread-
/ -fmove-all-movables -freduce-all-gi / -fmove-all-movables -freduce-all-gi
/ -ffunction-cse -finline -fkeep-stat / -ffunction-cse -finline -fkeep-stat
/ -fpcc-struct-return -fgcse -frerun- / -fpcc-struct-return -fgcse -frerun-
/ -fschedule-insns2 -fcommon -fverbos / -fschedule-insns2 -fcommon -fverbos
/ -foptimize-register-move -fargument / -foptimize-register-move -fargument
/ -fident -m80387 -mhard-float -mno-s / -fident -m80387 -mhard-float -mno-s
/ -mschedule-prologue -mcpu=pentiumpr / -mschedule-prologue -mcpu=pentiumpr
gcc2_compiled.: gcc2_compiled.:
.section .rodata .section .rodata
.LC0: .LC0:
.byte 0x53,0x47,0x45,0x51,0 .byte 0x53,0x47,0x45,0x51,0
.LC2: .LC2:
.byte 0x54,0x72,0x61,0x6e,0 .byte 0x54,0x72,0x61,0x6e,0
.LC3: .LC3:
.byte 0x4c,0x65,0x66,0x74 .byte 0x4c,0x65,0x66,0x74
.LC4: .LC4:
.byte 0x4c,0x45,0x46,0x54 .byte 0x4c,0x45,0x46,0x54
.align 4 .align 4
.LC1: .LC1:
.long 1 .long 1
.align 4 .align 4
.LC5: .LC5:
.long 0x3d4ccccd .long 0x3d4ccccd
.text .text
.align 4 .align 4
.globl sgeqpf_ .globl sgeqpf_
.type sgeqpf_,@function .type sgeqpf_,@function
sgeqpf_: sgeqpf_:
pushl %ebp pushl %ebp
movl %esp,%ebp movl %esp,%ebp
subl $188,%esp subl $188,%esp
movl 20(%ebp),%eax movl 20(%ebp),%eax
pushl %edi pushl %edi
pushl %esi pushl %esi
pushl %ebx pushl %ebx
movl 36(%ebp),%ebx movl 36(%ebp),%ebx
movl (%eax),%ecx movl (%eax),%ecx
movl 8(%ebp),%eax movl 8(%ebp),%eax
leal 0(,%ecx,4),%edx leal 0(,%ecx,4),%edx
movl %edx,-56(%ebp) movl %edx,-56(%ebp)
movl $0,(%ebx) movl $0,(%ebx)
movl (%eax),%edx movl (%eax),%edx
testl %edx,%edx testl %edx,%edx
jge .L3 jge .L3
movl $-1,(%ebx) movl $-1,(%ebx)
jmp .L4 jmp .L4
.align 4 .align 4
.L3: .L3:
movl 12(%ebp),%ebx movl 12(%ebp),%ebx
cmpl $0,(%ebx) cmpl $0,(%ebx)
jge .L5 jge .L5
movl 36(%ebp),%eax movl 36(%ebp),%eax
movl $-2,(%eax) movl $-2,(%eax)
jmp .L4 jmp .L4
.align 4 .align 4
.L5: .L5:
movl $1,%eax movl $1,%eax
testl %edx,%edx testl %edx,%edx
cmovg %edx,%eax cmovg %edx,%eax
cmpl %eax,%ecx cmpl %eax,%ecx
jge .L4 jge .L4
movl 36(%ebp),%edx movl 36(%ebp),%edx
movl $-4,(%edx) movl $-4,(%edx)
.L4: .L4:
movl 36(%ebp),%ecx movl 36(%ebp),%ecx
movl (%ecx),%eax movl (%ecx),%eax
testl %eax,%eax testl %eax,%eax
je .L9 je .L9
addl $-4,%esp addl $-4,%esp
pushl $6 pushl $6
negl %eax negl %eax
movl %eax,-4(%ebp) movl %eax,-4(%ebp)
leal -4(%ebp),%eax leal -4(%ebp),%eax
pushl %eax pushl %eax
pushl $.LC0 pushl $.LC0
call xerbla_ call xerbla_
jmp .L2 jmp .L2
.align 4 .align 4
.L9: .L9:
### The line
###
### MN = MIN( M, N )
###
### seems to be compiled here
###
movl 8(%ebp),%ebx movl 8(%ebp),%ebx
movl 12(%ebp),%edx movl 12(%ebp),%edx
movl (%ebx),%ebx movl (%ebx),%ebx
movl (%edx),%eax movl (%edx),%eax
###
### This is the buggy line.
###
### the memory location -68(%ebp) is read here. This location
### is not initialized before.
###
cmpl %eax,-68(%ebp) | cmpl %eax,%ebx
cmovg %eax,%ebx cmovg %eax,%ebx
movl %ebx,-68(%ebp) movl %ebx,-68(%ebp)
movl $1,-64(%ebp) movl $1,-64(%ebp)
movl $1,-60(%ebp) movl $1,-60(%ebp)
decl %eax decl %eax
movl %eax,-76(%ebp) movl %eax,-76(%ebp)
js .L12 js .L12
movl 16(%ebp),%edi movl 16(%ebp),%edi
movl 24(%ebp),%ebx movl 24(%ebp),%ebx
movl %edi,-156(%ebp) movl %edi,-156(%ebp)
movl %ebx,%esi movl %ebx,%esi
.align 4 .align 4
.L14: .L14:
cmpl $0,(%ebx) cmpl $0,(%ebx)
je .L15 je .L15
movl -64(%ebp),%ecx movl -64(%ebp),%ecx
cmpl %ecx,-60(%ebp) cmpl %ecx,-60(%ebp)
je .L16 je .L16
addl $-12,%esp addl $-12,%esp
pushl $.LC1 pushl $.LC1
movl -156(%ebp),%eax movl -156(%ebp),%eax
movl 8(%ebp),%edx movl 8(%ebp),%edx
pushl %eax pushl %eax
pushl $.LC1 pushl $.LC1
pushl %edi pushl %edi
pushl %edx pushl %edx
call sswap_ call sswap_
movl (%esi),%eax movl (%esi),%eax
movl %eax,(%ebx) movl %eax,(%ebx)
movl -60(%ebp),%ecx movl -60(%ebp),%ecx
movl %ecx,(%esi) movl %ecx,(%esi)
addl $32,%esp addl $32,%esp
jmp .L17 jmp .L17
.align 4 .align 4
.L16: .L16:
movl -60(%ebp),%eax movl -60(%ebp),%eax
movl %eax,(%ebx) movl %eax,(%ebx)
.L17: .L17:
movl -56(%ebp),%edx movl -56(%ebp),%edx
addl $4,%esi addl $4,%esi
addl %edx,-156(%ebp) addl %edx,-156(%ebp)
incl -64(%ebp) incl -64(%ebp)
jmp .L13 jmp .L13
.align 4 .align 4
.L15: .L15:
movl -60(%ebp),%ecx movl -60(%ebp),%ecx
movl %ecx,(%ebx) movl %ecx,(%ebx)
.L13: .L13:
addl -56(%ebp),%edi addl -56(%ebp),%edi
addl $4,%ebx addl $4,%ebx
incl -60(%ebp) incl -60(%ebp)
decl -76(%ebp) decl -76(%ebp)
jns .L14 jns .L14
.L12: .L12:
decl -64(%ebp) decl -64(%ebp)
cmpl $0,-64(%ebp) cmpl $0,-64(%ebp)
jle .L21 jle .L21
movl 8(%ebp),%edx movl 8(%ebp),%edx
movl -64(%ebp),%ebx movl -64(%ebp),%ebx
movl %ebx,-52(%ebp) movl %ebx,-52(%ebp)
movl (%edx),%eax movl (%edx),%eax
cmpl %eax,%ebx cmpl %eax,%ebx
jle .L22 jle .L22
movl %eax,-52(%ebp) movl %eax,-52(%ebp)
.L22: .L22:
movl 36(%ebp),%ecx movl 36(%ebp),%ecx
movl 32(%ebp),%ebx movl 32(%ebp),%ebx
movl 28(%ebp),%eax movl 28(%ebp),%eax
movl 20(%ebp),%edx movl 20(%ebp),%edx
addl $-4,%esp addl $-4,%esp
pushl %ecx pushl %ecx
movl 16(%ebp),%ecx movl 16(%ebp),%ecx
pushl %ebx pushl %ebx
pushl %eax pushl %eax
movl 8(%ebp),%eax movl 8(%ebp),%eax
pushl %edx pushl %edx
pushl %ecx pushl %ecx
leal -52(%ebp),%ebx leal -52(%ebp),%ebx
pushl %ebx pushl %ebx
pushl %eax pushl %eax
call sgeqr2_ call sgeqr2_
movl 12(%ebp),%eax movl 12(%ebp),%eax
movl -52(%ebp),%edx movl -52(%ebp),%edx
addl $32,%esp addl $32,%esp
movl (%eax),%ecx movl (%eax),%ecx
cmpl %ecx,%edx cmpl %ecx,%edx
jge .L21 jge .L21
movl 36(%ebp),%eax movl 36(%ebp),%eax
addl $-8,%esp addl $-8,%esp
pushl $9 pushl $9
pushl $4 pushl $4
pushl %eax pushl %eax
movl 32(%ebp),%eax movl 32(%ebp),%eax
pushl %eax pushl %eax
movl 20(%ebp),%eax movl 20(%ebp),%eax
pushl %eax pushl %eax
movl -56(%ebp),%eax movl -56(%ebp),%eax
imull %edx,%eax imull %edx,%eax
addl 16(%ebp),%eax addl 16(%ebp),%eax
pushl %eax pushl %eax
movl 28(%ebp),%eax movl 28(%ebp),%eax
pushl %eax pushl %eax
movl 20(%ebp),%eax movl 20(%ebp),%eax
pushl %eax pushl %eax
movl 16(%ebp),%eax movl 16(%ebp),%eax
subl %edx,%ecx subl %edx,%ecx
movl 8(%ebp),%edx movl 8(%ebp),%edx
pushl %eax pushl %eax
pushl %ebx pushl %ebx
movl %ecx,-8(%ebp) movl %ecx,-8(%ebp)
leal -8(%ebp),%eax leal -8(%ebp),%eax
pushl %eax pushl %eax
pushl %edx pushl %edx
pushl $.LC2 pushl $.LC2
pushl $.LC3 pushl $.LC3
call sorm2r_ call sorm2r_
addl $64,%esp addl $64,%esp
.L21: .L21:
movl -68(%ebp),%ecx movl -68(%ebp),%ecx
cmpl %ecx,-64(%ebp) cmpl %ecx,-64(%ebp)
jge .L2 jge .L2
movl -64(%ebp),%eax movl -64(%ebp),%eax
incl %eax incl %eax
movl %eax,-60(%ebp) movl %eax,-60(%ebp)
movl 12(%ebp),%eax movl 12(%ebp),%eax
movl -60(%ebp),%edx movl -60(%ebp),%edx
movl (%eax),%ebx movl (%eax),%ebx
subl -60(%ebp),%ebx subl -60(%ebp),%ebx
movl %edx,-144(%ebp) movl %edx,-144(%ebp)
js .L26 js .L26
movl 32(%ebp),%eax movl 32(%ebp),%eax
movl %eax,-88(%ebp) movl %eax,-88(%ebp)
movl %edx,%eax movl %edx,%eax
imull -56(%ebp),%eax imull -56(%ebp),%eax
movl 16(%ebp),%edx movl 16(%ebp),%edx
leal -12(%ebp),%ecx leal -12(%ebp),%ecx
movl %ecx,-80(%ebp) movl %ecx,-80(%ebp)
movl -64(%ebp),%ecx movl -64(%ebp),%ecx
subl -56(%ebp),%edx subl -56(%ebp),%edx
sall $2,%ecx sall $2,%ecx
addl %ecx,%edx addl %ecx,%edx
leal (%edx,%eax),%edi leal (%edx,%eax),%edi
movl 32(%ebp),%edx movl 32(%ebp),%edx
leal (%edx,%ecx),%esi leal (%edx,%ecx),%esi
.align 4 .align 4
.L28: .L28:
movl 8(%ebp),%ecx movl 8(%ebp),%ecx
addl $-4,%esp addl $-4,%esp
pushl $.LC1 pushl $.LC1
pushl %edi pushl %edi
movl -80(%ebp),%edx movl -80(%ebp),%edx
movl (%ecx),%eax movl (%ecx),%eax
subl -64(%ebp),%eax subl -64(%ebp),%eax
movl %eax,-12(%ebp) movl %eax,-12(%ebp)
pushl %edx pushl %edx
call snrm2_ call snrm2_
fstps -16(%ebp) fstps -16(%ebp)
flds -16(%ebp) flds -16(%ebp)
fsts (%esi) fsts (%esi)
movl -60(%ebp),%eax movl -60(%ebp),%eax
movl 12(%ebp),%ecx movl 12(%ebp),%ecx
movl -88(%ebp),%edx movl -88(%ebp),%edx
addl $16,%esp addl $16,%esp
addl $4,%esi addl $4,%esi
addl (%ecx),%eax addl (%ecx),%eax
fstps -4(%edx,%eax,4) fstps -4(%edx,%eax,4)
addl -56(%ebp),%edi addl -56(%ebp),%edi
incl -60(%ebp) incl -60(%ebp)
decl %ebx decl %ebx
jns .L28 jns .L28
.L26: .L26:
movl -144(%ebp),%ecx movl -144(%ebp),%ecx
movl -68(%ebp),%ebx movl -68(%ebp),%ebx
movl %ecx,-60(%ebp) movl %ecx,-60(%ebp)
subl %ecx,%ebx subl %ecx,%ebx
movl %ebx,-84(%ebp) movl %ebx,-84(%ebp)
js .L2 js .L2
movl 16(%ebp),%edx movl 16(%ebp),%edx
movl 32(%ebp),%ecx movl 32(%ebp),%ecx
leal -20(%ebp),%eax leal -20(%ebp),%eax
movl %eax,-92(%ebp) movl %eax,-92(%ebp)
movl -56(%ebp),%eax movl -56(%ebp),%eax
leal -24(%ebp),%ebx leal -24(%ebp),%ebx
movl %ebx,-104(%ebp) movl %ebx,-104(%ebp)
movl -56(%ebp),%ebx movl -56(%ebp),%ebx
movl %edx,-96(%ebp) movl %edx,-96(%ebp)
movl %ecx,-100(%ebp) movl %ecx,-100(%ebp)
addl $4,%eax addl $4,%eax
movl %eax,-108(%ebp) movl %eax,-108(%ebp)
leal -28(%ebp),%edx leal -28(%ebp),%edx
movl %edx,-112(%ebp) movl %edx,-112(%ebp)
leal -32(%ebp),%ecx leal -32(%ebp),%ecx
movl %ecx,-116(%ebp) movl %ecx,-116(%ebp)
movl %ebx,-152(%ebp) movl %ebx,-152(%ebp)
negl -152(%ebp) negl -152(%ebp)
.align 4 .align 4
.L34: .L34:
addl $-4,%esp addl $-4,%esp
pushl $.LC1 pushl $.LC1
movl -60(%ebp),%ebx movl -60(%ebp),%ebx
movl 32(%ebp),%eax movl 32(%ebp),%eax
movl 12(%ebp),%edx movl 12(%ebp),%edx
decl %ebx decl %ebx
leal 0(,%ebx,4),%edi leal 0(,%ebx,4),%edi
addl %edi,%eax addl %edi,%eax
pushl %eax pushl %eax
movl -92(%ebp),%ecx movl -92(%ebp),%ecx
movl (%edx),%eax movl (%edx),%eax
subl -60(%ebp),%eax subl -60(%ebp),%eax
incl %eax incl %eax
movl %eax,-20(%ebp) movl %eax,-20(%ebp)
pushl %ecx pushl %ecx
call isamax_ call isamax_
movl -60(%ebp),%edx movl -60(%ebp),%edx
leal -1(%edx,%eax),%esi leal -1(%edx,%eax),%esi
addl $16,%esp addl $16,%esp
movl %ebx,-136(%ebp) movl %ebx,-136(%ebp)
cmpl %edx,%esi cmpl %edx,%esi
je .L35 je .L35
addl $-12,%esp addl $-12,%esp
pushl $.LC1 pushl $.LC1
movl -56(%ebp),%eax movl -56(%ebp),%eax
imull %ebx,%eax imull %ebx,%eax
addl -96(%ebp),%eax addl -96(%ebp),%eax
pushl %eax pushl %eax
pushl $.LC1 pushl $.LC1
movl -56(%ebp),%eax movl -56(%ebp),%eax
movl 8(%ebp),%ecx movl 8(%ebp),%ecx
leal -1(%esi),%ebx leal -1(%esi),%ebx
imull %ebx,%eax imull %ebx,%eax
addl -96(%ebp),%eax addl -96(%ebp),%eax
pushl %eax pushl %eax
pushl %ecx pushl %ecx
call sswap_ call sswap_
movl 24(%ebp),%eax movl 24(%ebp),%eax
movl 24(%ebp),%edx movl 24(%ebp),%edx
sall $2,%ebx sall $2,%ebx
movl (%ebx,%eax),%eax movl (%ebx,%eax),%eax
movl %eax,-64(%ebp) movl %eax,-64(%ebp)
movl (%edi,%edx),%eax movl (%edi,%edx),%eax
movl %eax,(%ebx,%edx) movl %eax,(%ebx,%edx)
movl -64(%ebp),%ecx movl -64(%ebp),%ecx
movl %ecx,(%edi,%edx) movl %ecx,(%edi,%edx)
movl -100(%ebp),%eax movl -100(%ebp),%eax
addl $32,%esp addl $32,%esp
movl 12(%ebp),%edx movl 12(%ebp),%edx
flds (%edi,%eax) flds (%edi,%eax)
fstps (%ebx,%eax) fstps (%ebx,%eax)
movl (%edx),%eax movl (%edx),%eax
movl -60(%ebp),%ecx movl -60(%ebp),%ecx
movl -100(%ebp),%ebx movl -100(%ebp),%ebx
leal -1(%esi,%eax),%edx leal -1(%esi,%eax),%edx
leal -1(%ecx,%eax),%eax leal -1(%ecx,%eax),%eax
flds (%ebx,%eax,4) flds (%ebx,%eax,4)
fstps (%ebx,%edx,4) fstps (%ebx,%edx,4)
.L35: .L35:
movl 8(%ebp),%eax movl 8(%ebp),%eax
movl (%eax),%ecx movl (%eax),%ecx
cmpl %ecx,-60(%ebp) cmpl %ecx,-60(%ebp)
jge .L36 jge .L36
movl 28(%ebp),%eax movl 28(%ebp),%eax
addl $-12,%esp addl $-12,%esp
addl %edi,%eax addl %edi,%eax
pushl %eax pushl %eax
pushl $.LC1 pushl $.LC1
movl -56(%ebp),%eax movl -56(%ebp),%eax
imull -136(%ebp),%eax imull -136(%ebp),%eax
movl -60(%ebp),%ebx movl -60(%ebp),%ebx
addl 16(%ebp),%eax addl 16(%ebp),%eax
leal (%eax,%ebx,4),%edx leal (%eax,%ebx,4),%edx
pushl %edx pushl %edx
addl %edi,%eax addl %edi,%eax
pushl %eax pushl %eax
movl -104(%ebp),%eax movl -104(%ebp),%eax
subl %ebx,%ecx subl %ebx,%ecx
incl %ecx incl %ecx
movl %ecx,-24(%ebp) movl %ecx,-24(%ebp)
pushl %eax pushl %eax
jmp .L53 jmp .L53
.align 4 .align 4
.L36: .L36:
movl 28(%ebp),%edx movl 28(%ebp),%edx
addl $-12,%esp addl $-12,%esp
leal -1(%ecx),%eax leal -1(%ecx),%eax
leal 0(,%eax,4),%ecx leal 0(,%eax,4),%ecx
addl %ecx,%edx addl %ecx,%edx
pushl %edx pushl %edx
pushl $.LC1 pushl $.LC1
imull -56(%ebp),%eax imull -56(%ebp),%eax
addl 16(%ebp),%eax addl 16(%ebp),%eax
addl %ecx,%eax addl %ecx,%eax
pushl %eax pushl %eax
pushl %eax pushl %eax
pushl $.LC1 pushl $.LC1
.L53: .L53:
call slarfg_ call slarfg_
addl $32,%esp addl $32,%esp
movl 12(%ebp),%ecx movl 12(%ebp),%ecx
movl -60(%ebp),%edx movl -60(%ebp),%edx
cmpl (%ecx),%edx cmpl (%ecx),%edx
jge .L38 jge .L38
movl -108(%ebp),%ebx movl -108(%ebp),%ebx
imull -136(%ebp),%ebx imull -136(%ebp),%ebx
movl -96(%ebp),%eax movl -96(%ebp),%eax
movl 32(%ebp),%edx movl 32(%ebp),%edx
addl $-8,%esp addl $-8,%esp
flds (%ebx,%eax) flds (%ebx,%eax)
fstps -72(%ebp) fstps -72(%ebp)
movl $1065353216,(%ebx,%eax) movl $1065353216,(%ebx,%eax)
pushl $4 pushl $4
movl (%ecx),%ecx movl (%ecx),%ecx
leal (%edx,%ecx,8),%eax leal (%edx,%ecx,8),%eax
pushl %eax pushl %eax
movl 20(%ebp),%eax movl 20(%ebp),%eax
pushl %eax pushl %eax
movl -56(%ebp),%eax movl -56(%ebp),%eax
movl -136(%ebp),%edx movl -136(%ebp),%edx
imull -60(%ebp),%eax imull -60(%ebp),%eax
addl -96(%ebp),%eax addl -96(%ebp),%eax
sall $2,%edx sall $2,%edx
addl %edx,%eax addl %edx,%eax
pushl %eax pushl %eax
movl 28(%ebp),%eax movl 28(%ebp),%eax
addl %edx,%eax addl %edx,%eax
pushl %eax pushl %eax
pushl $.LC1 pushl $.LC1
movl -56(%ebp),%eax movl -56(%ebp),%eax
imull -136(%ebp),%eax imull -136(%ebp),%eax
addl -96(%ebp),%eax addl -96(%ebp),%eax
addl %edx,%eax addl %edx,%eax
pushl %eax pushl %eax
subl -60(%ebp),%ecx subl -60(%ebp),%ecx
movl %ecx,-28(%ebp) movl %ecx,-28(%ebp)
movl 8(%ebp),%ecx movl 8(%ebp),%ecx
movl -112(%ebp),%edx movl -112(%ebp),%edx
pushl %edx pushl %edx
movl (%ecx),%eax movl (%ecx),%eax
subl -60(%ebp),%eax subl -60(%ebp),%eax
incl %eax incl %eax
movl %eax,-32(%ebp) movl %eax,-32(%ebp)
movl -116(%ebp),%eax movl -116(%ebp),%eax
pushl %eax pushl %eax
pushl $.LC4 pushl $.LC4
call slarf_ call slarf_
flds -72(%ebp) flds -72(%ebp)
movl 16(%ebp),%edx movl 16(%ebp),%edx
fstps (%ebx,%edx) fstps (%ebx,%edx)
addl $48,%esp addl $48,%esp
.L38: .L38:
movl -60(%ebp),%eax movl -60(%ebp),%eax
incl %eax incl %eax
movl %eax,%esi movl %eax,%esi
movl 12(%ebp),%eax movl 12(%ebp),%eax
movl -84(%ebp),%ecx movl -84(%ebp),%ecx
decl %ecx decl %ecx
movl (%eax),%edx movl (%eax),%edx
subl %esi,%edx subl %esi,%edx
movl %edx,-120(%ebp) movl %edx,-120(%ebp)
movl %esi,-140(%ebp) movl %esi,-140(%ebp)
movl %ecx,-148(%ebp) movl %ecx,-148(%ebp)
js .L33 js .L33
fldz fldz
movl -60(%ebp),%ebx movl -60(%ebp),%ebx
movl 32(%ebp),%edx movl 32(%ebp),%edx
movl -136(%ebp),%ecx movl -136(%ebp),%ecx
sall $2,%ebx sall $2,%ebx
movl %ebx,-124(%ebp) movl %ebx,-124(%ebp)
movl -152(%ebp),%ebx movl -152(%ebp),%ebx
movl -60(%ebp),%edi movl -60(%ebp),%edi
leal -36(%ebp),%eax leal -36(%ebp),%eax
movl %eax,-128(%ebp) movl %eax,-128(%ebp)
leal (%ebx,%ecx,4),%eax leal (%ebx,%ecx,4),%eax
movl 32(%ebp),%ebx movl 32(%ebp),%ebx
movl %edx,-132(%ebp) movl %edx,-132(%ebp)
movl %esi,%edx movl %esi,%edx
imull -56(%ebp),%edx imull -56(%ebp),%edx
imull -56(%ebp),%edi imull -56(%ebp),%edi
addl 16(%ebp),%eax addl 16(%ebp),%eax
movl %esi,%ecx movl %esi,%ecx
leal -4(%ebx,%ecx,4),%ecx leal -4(%ebx,%ecx,4),%ecx
movl %ecx,-160(%ebp) movl %ecx,-160(%ebp)
movl %ecx,%ebx movl %ecx,%ebx
addl %edx,%eax addl %edx,%eax
movl %eax,-164(%ebp) movl %eax,-164(%ebp)
.align 4 .align 4
.L42: .L42:
flds (%ebx) flds (%ebx)
fucomi %st(1),%st fucomi %st(1),%st
setne %al setne %al
setp %ah setp %ah
orb %al,%ah orb %al,%ah
je .L54 je .L54
movl -164(%ebp),%edx movl -164(%ebp),%edx
flds (%edx) flds (%edx)
fabs fabs
fdiv %st(1),%st fdiv %st(1),%st
fld1 fld1
fxch %st(1) fxch %st(1)
fmul %st(0),%st fmul %st(0),%st
fld %st(1) fld %st(1)
fsubp %st,%st(1) fsubp %st,%st(1)
fcomi %st(3),%st fcomi %st(3),%st
jae .L44 jae .L44
fstp %st(0) fstp %st(0)
fldz fldz
.L44: .L44:
fxch %st(2) fxch %st(2)
movl 12(%ebp),%edx movl 12(%ebp),%edx
movl 32(%ebp),%ecx movl 32(%ebp),%ecx
movl %esi,%eax movl %esi,%eax
addl (%edx),%eax addl (%edx),%eax
fdivs -4(%ecx,%eax,4) fdivs -4(%ecx,%eax,4)
fld %st(2) fld %st(2)
fmuls .LC5 fmuls .LC5
fxch %st(1) fxch %st(1)
fmul %st(0),%st fmul %st(0),%st
fmulp %st,%st(1) fmulp %st,%st(1)
fadd %st(1),%st fadd %st(1),%st
fucomip %st(1),%st fucomip %st(1),%st
fstp %st(0) fstp %st(0)
setne %al setne %al
setp %ah setp %ah
orb %al,%ah orb %al,%ah
jne .L45 jne .L45
fstp %st(0) fstp %st(0)
movl 8(%ebp),%ecx movl 8(%ebp),%ecx
movl (%ecx),%edx movl (%ecx),%edx
subl -60(%ebp),%edx subl -60(%ebp),%edx
testl %edx,%edx testl %edx,%edx
jle .L46 jle .L46
movl 16(%ebp),%eax movl 16(%ebp),%eax
addl $-4,%esp addl $-4,%esp
pushl $.LC1 pushl $.LC1
addl %edi,%eax addl %edi,%eax
addl -124(%ebp),%eax addl -124(%ebp),%eax
pushl %eax pushl %eax
movl -128(%ebp),%eax movl -128(%ebp),%eax
movl %edx,-36(%ebp) movl %edx,-36(%ebp)
pushl %eax pushl %eax
fstpt -176(%ebp) fstpt -176(%ebp)
call snrm2_ call snrm2_
fstps -16(%ebp) fstps -16(%ebp)
flds -16(%ebp) flds -16(%ebp)
movl -160(%ebp),%edx movl -160(%ebp),%edx
fsts (%edx) fsts (%edx)
movl 12(%ebp),%ecx movl 12(%ebp),%ecx
movl -132(%ebp),%edx movl -132(%ebp),%edx
movl %esi,%eax movl %esi,%eax
addl $16,%esp addl $16,%esp
addl (%ecx),%eax addl (%ecx),%eax
fstps -4(%edx,%eax,4) fstps -4(%edx,%eax,4)
fldt -176(%ebp) fldt -176(%ebp)
jmp .L41 jmp .L41
.align 4 .align 4
.L46: .L46:
movl $0,(%ebx) movl $0,(%ebx)
movl 12(%ebp),%ecx movl 12(%ebp),%ecx
movl 32(%ebp),%edx movl 32(%ebp),%edx
movl %esi,%eax movl %esi,%eax
addl (%ecx),%eax addl (%ecx),%eax
movl $0,-4(%edx,%eax,4) movl $0,-4(%edx,%eax,4)
jmp .L41 jmp .L41
.align 4 .align 4
.L45: .L45:
fsqrt fsqrt
fstps -16(%ebp) fstps -16(%ebp)
flds -16(%ebp) flds -16(%ebp)
fmuls (%ebx) fmuls (%ebx)
fstps (%ebx) fstps (%ebx)
jmp .L41 jmp .L41
.L54: .L54:
fstp %st(0) fstp %st(0)
.L41: .L41:
movl -56(%ebp),%eax movl -56(%ebp),%eax
addl %eax,-164(%ebp) addl %eax,-164(%ebp)
addl %eax,%edi addl %eax,%edi
addl $4,%ebx addl $4,%ebx
addl $4,-160(%ebp) addl $4,-160(%ebp)
incl %esi incl %esi
decl -120(%ebp) decl -120(%ebp)
jns .L42 jns .L42
fstp %st(0) fstp %st(0)
.L33: .L33:
movl -140(%ebp),%edx movl -140(%ebp),%edx
movl -148(%ebp),%ecx movl -148(%ebp),%ecx
movl %edx,-60(%ebp) movl %edx,-60(%ebp)
movl %ecx,-84(%ebp) movl %ecx,-84(%ebp)
testl %ecx,%ecx testl %ecx,%ecx
jge .L34 jge .L34
.L2: .L2:
leal -200(%ebp),%esp leal -200(%ebp),%esp
popl %ebx popl %ebx
popl %esi popl %esi
popl %edi popl %edi
movl %ebp,%esp movl %ebp,%esp
popl %ebp popl %ebp
ret ret
.Lfe1: .Lfe1:
.size sgeqpf_,.Lfe1-sgeqpf .size sgeqpf_,.Lfe1-sgeqpf
.ident "GCC: (GNU) gcc-2.95 .ident "GCC: (GNU) gcc-2.95
-----------------------------------------------------------------------------
--
Mathias Fr"ohlich e-mail: frohlich@na.uni-tuebingen.de
Institut f"ur Mathematik, Universit"at T"ubingen, D-72076 T"ubingen
>From j.l.gomez-dans@sheffield.ac.uk Tue Jul 06 05:11:00 1999
From: Jose L Gomez Dans <j.l.gomez-dans@sheffield.ac.uk>
To: egcs-bugs@egcs.cygnus.com
Subject: g77/gdb and complex numbers.
Date: Tue, 06 Jul 1999 05:11:00 -0000
Message-id: <19990706133229.A389@shef.ac.uk>
X-SW-Source: 1999-07/msg00200.html
Content-length: 5044
Hi!
Yesterday, I posted to comp.lang.fortran a query about how the
g77/gdb duo treat complex numbers. Basically, I cannot inspect complex
number arrays (or single complex variables). Also, in this sort of test
programs, I cannot redirect my output to the console. print* -statements
print fine on gdb, but when executed from the pront, I just get a clean
prompt again. This is the test program:
***************************************************************
PROGRAM TEST
complex carr(10)
character key
dimension drpart(10), dimag(10)
real pi
pi=3.141592
print*,'Press a key'
read*,key
print*,'Values of carr'
print*,'Complex Value Real Part Imaginary Part'
do i=1,10
carr(i)=cmplx(real(i-1),real(10-i))
drpart(i)=real(carr(i))
dimag(i)=aimag(carr(i))
print 999, carr(i),drpart(i),dimag(i)
end do
999 format(F6.4,1x,F6.4,3x,E9.4,3x,E14.4)
STOP
END
******************************************************
and this is the output from g77 -v...
#############################################################################
g77 version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release) (from FSF-g77 version 0.5.24-19981002)
Driving: g77 -v -c -xf77-version /dev/null -xnone
Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs
gcc version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release)
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D_LANGUAGE_FORTRAN -traditional -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di486 -D__i486 -D__i486__ /dev/null /dev/null
GNU CPP version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/include
/usr/include
End of search list.
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/f771 -fnull-version -quiet -dumpbase g77-version.f -version -fversion -o /tmp/cc8B9Bhm.s /dev/null
GNU F77 version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release) (i486-linux) compiled by GNU C version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release).
GNU Fortran Front End version 0.5.24-19981002
as -V -Qy -o /tmp/ccw7rYpB.o /tmp/cc8B9Bhm.s
GNU assembler version 2.9.1 (i486-linux), using BFD version 2.9.1.0.22
ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o /tmp/cci1kmdR /tmp/ccw7rYpB.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/crtbegin.o -L/usr/lib/gcc-lib/i486-linux/egcs-2.91.66 -lg2c -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/crtend.o /usr/lib/crtn.o
/tmp/cci1kmdR
__G77_LIBF77_VERSION__: 0.5.24
@(#)LIBF77 VERSION 19970919
__G77_LIBI77_VERSION__: 0.5.24-19981021
@(#) LIBI77 VERSION pjw,dmg-mods 19980617
__G77_LIBU77_VERSION__: 0.5.24-19990305
@(#) LIBU77 VERSION 19980709
#############################################################################
So, I compile the above program with g77 -g -Wall -o test test.f, and
then run gdb test. This is how the session looks like
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) break 18
Breakpoint 1 at 0x8049010: file test.f, line 18.
(gdb) run
Starting program: /home/jgomez/test
Press a key
K
Values of carr
Complex Value Real Part Imaginary Part
0.0000 9.0000 .0000E+00 0.9000E+01
1.0000 8.0000 .1000E+01 0.8000E+01
2.0000 7.0000 .2000E+01 0.7000E+01
3.0000 6.0000 .3000E+01 0.6000E+01
4.0000 5.0000 .4000E+01 0.5000E+01
5.0000 4.0000 .5000E+01 0.4000E+01
6.0000 3.0000 .6000E+01 0.3000E+01
7.0000 2.0000 .7000E+01 0.2000E+01
8.0000 1.0000 .8000E+01 0.1000E+01
9.0000 0.0000 .9000E+01 0.0000E+00
Breakpoint 1, MAIN__ () at test.f:19
19 stop
Current language: auto; currently fortran
(gdb) p carr
$1 = (Invalid F77 type code 3 in symbol table.
(gdb) p carr(1)
$2 = Invalid F77 type code 3 in symbol table.
(gdb) p drpart
$3 = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(gdb) p dimag
$4 = (9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
(gdb) p key
$5 = (75 'K')
As you can see, all variables seem to be recognised (characters and
doubles, integers show up nicely as well, though this isn't shown). Complex
data seems to be the problem. Any ideas on this.
Also, why with this short program, and running it in the console, I
get no output whatsoever?
Thanks in advance,
Jose
--
Jose L Gomez Dans PhD student
Radar & Communications Group
Department of Electronic Engineering
University of Sheffield UK
>From pfeifer@dbai.tuwien.ac.at Tue Jul 06 05:15:00 1999
From: Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
To: egcs-bugs@egcs.cygnus.com
Cc: Bruce Korb <korbb@datadesign.com>, "David O'Brien" <obrien@nuxi.com>
Subject: fixinc: RE error: repetition-operator operand invalid
Date: Tue, 06 Jul 1999 05:15:00 -0000
Message-id: <Pine.GSO.4.10.9907061412330.11328-100000@markab.dbai.tuwien.ac.at>
X-SW-Source: 1999-07/msg00201.html
Content-length: 902
On FreeBSD 3.2 I get the following error messages when bootstrapping
current CVS:
:
Fixing directory /usr/include into /files/pfeifer/OBJ-0607-14:02/gcc/include
Applying End_Else_Label to ./g++/std/cstring.h
sed: 9: ":loop
/\\$/N
s/\\$/\\++ ...": RE error: repetition-operator operand invalid
Applying Machine_Name to ./g++/libioP.h
:
Applying End_Else_Label to ./objc/list.h
sed: 9: ":loop
/\\$/N
s/\\$/\\++ ...": RE error: repetition-operator operand invalid
Applying End_Else_Label to ./objc/Protocol.h
sed: 9: ":loop
/\\$/N
s/\\$/\\++ ...": RE error: repetition-operator operand invalid
Applying Ioctl_Fix_Ctrl to ./readline/chardefs.h
:
If these are real errors, shouldn't the bootstrap abort at this point?
Gerald
--
Gerald "Jerry" pfeifer@dbai.tuwien.ac.at http://www.dbai.tuwien.ac.at/~pfeifer/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bugreport on g77-2.95 19990629 (prerelease)
1999-07-06 4:38 ` Mathias Froehlich
@ 1999-07-07 14:57 ` Toon Moene
0 siblings, 0 replies; 7+ messages in thread
From: Toon Moene @ 1999-07-07 14:57 UTC (permalink / raw)
To: Mathias Froehlich; +Cc: craig, egcs-bugs
Mathias Froehlich wrote:
> > >I have probably found a bug in g77-2.95 19990629 (prerelease)
> > >(i686-pc-linux-gnu). I use a RedHat-6.0 system.
It fails in the same way on my i686-pc-linux-gnu RH 5.2 system, using
g77 version gcc-2.95 19990704 (prerelease).
> > >The file sgeqpf.f from LAPACK (you can find it in the SRC
> > >subdirectory of the LAPACK source tree) seem to be misscompiled using
> > >this and many previous versions of egcs.
Your analysis seems sound to me. I'll try to debug this during the
coming weekend (unless someone beats me to it).
Thanks,
--
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
GNU Fortran: http://world.std.com/~burley/g77.html
>From ross.s@ihug.co.nz Wed Jul 07 15:30:00 1999
From: Ross Smith <ross.s@ihug.co.nz>
To: jorgefm@cirsa.com
Cc: egcs-bugs@egcs.cygnus.com
Subject: Re: Throw & catch bug?
Date: Wed, 07 Jul 1999 15:30:00 -0000
Message-id: <3783D4FA.2DC80E8C@ihug.co.nz>
References: <C12567A7.002D5D10.00@ntdes.lgcirsa.com>
X-SW-Source: 1999-07/msg00278.html
Content-length: 731
jorgefm@cirsa.com wrote:
>
> How can the destructor call twice, one after throw (incorrect) and the
> second and ok at the end of the catch.
You forgot to put any instrumentation in the copy constructor. The
compiler is behaving correctly: throwing an exception *always* copies
the object.
--
Ross Smith <ross.s@ihug.co.nz> The Internet Group, Auckland, New Zealand
========================================================================
The good news, according to the FCC, is that television viewing won't be
interrupted by the Y2K problem. The bad news, according to the rest of
us, is that television viewing won't be interrupted by the Y2K problem.
-- Jonathan Erickson in Dr Dobb's Journal
>From David.Billinghurst@riotinto.com.au Wed Jul 07 16:20:00 1999
From: "Billinghurst, David (RTD)" <David.Billinghurst@riotinto.com.au>
To: "'Toon Moene'" <toon@moene.indiv.nluug.nl>
Cc: "'egcs-bugs@egcs.cygnus.com'" <egcs-bugs@egcs.cygnus.com>, wilson@cygnus.com
Subject: RE: single precision complex bug in g77 - was Testing g77 with LAPACK 3.0
Date: Wed, 07 Jul 1999 16:20:00 -0000
Message-id: <A9E96A79C068D211A6A90000C07BDF0D1DE8E4@CRTSMAIL>
X-SW-Source: 1999-07/msg00279.html
Content-length: 3163
Precisely. On reading this I realised the error test should be real vs real
if ( abs(a-1.0) .gt. 1.0e-5 ) then
This doesn't change the result. Still get a == 0.0 but expect a == 1.0
> -----Original Message-----
> From: Toon Moene [SMTP:toon@moene.indiv.nluug.nl]
> Sent: Thursday, 8 July 1999 6:12
> To: Billinghurst, David (RTD)
> Cc: 'egcs-bugs@egcs.cygnus.com'; wilson@cygnus.com
> Subject: Re: single precision complex bug in g77 - was Testing g77
> with LAPACK 3.0
>
> Billinghurst, David (RTD) wrote:
>
> > Here is a test case.
>
> Thanks for trimming this down. Unfortunately (as was to be expected) it
> doesn't fail on my i686-pc-linux-gnu system - it prints nothing, and not
> just because I called the executable `test' :-)
>
> > ############################################################
> > program labug3
> > implicit none
> >
> > * This program gives the wrong answer on mips-sgi-irix6.5
> > * when compiled with g77 from egcs-19990629 (gcc 2.95 prerelease)
> > *
> > * Works with: -femulate-complex
> > * egcs-1.1.2
> > *
> > * Originally derived from LAPACK 3.0 test suite.
> > *
> > * David Billinghurst, (David.Billinghurst@riotinto.com.au)
> > * 7 July 1999
> > *
> > complex one, z
> > real a,cabs1
> > CABS1( Z) = ABS( REAL( Z)) + ABS( AIMAG(Z))
> > one = (1.,0.)
> > a = cabs1(one)
> > if ( abs(a-one) .gt. 1.0e-5 ) then
> > write(6,*) 'A should be 1.0'
> > call abort()
> > end if
> > end
> > ###############################################################
>
> Could someone with an Alpha at hand try this example (it might be that
> the problem is "Single precision COMPLEX on 64-bit target").
>
> Some explanation:
>
> CABS1( Z) = ABS( REAL( Z)) + ABS( AIMAG(Z))
>
> is a "statement function" (sort of macro: the rhs is subsituted with z
> replaced with whatever is the argument of cabs1). Note that both abs's
> in this expression are REAL ones, because REAL(Z) and AIMAG(Z) are
> REALS. Therefore, CABS1 (in spite of its name) is a REAL valued
> statement function, as is expressed by the declaration "real cabs1".
>
> Contrast this with the `abs' in "if ( abs(a-one) ...". The promotion
> rules of Fortran make the expression `a-one' (which is of the type
> REAL+COMPLEX) of type COMPLEX, so `abs(a-one)' is COMPLEX absolute value
> of the result of CMPLX(a, 0.) - (1., 0.) = (0., 0.)
>
> Even with gcc-2.95[-pre], g77 still codes a call to the libg2c routine
> "c_abs" for computing the absolute value of a complex expression (I
> didn't have the time to open code that one, in addition to complex
> division - at least not before April 21).
>
> I hope someone with an Alpha can help out (or a MIPS guru - if the above
> explanation is sufficiently clear. Jim ?).
>
> Thanks in advance,
>
> --
> Toon Moene (toon@moene.indiv.nluug.nl)
> Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
> Phone: +31 346 214290; Fax: +31 346 214286
> GNU Fortran: http://world.std.com/~burley/g77.html
>
> The very last thing we want to do for this release is reinstate
> -femulate-complex as the default.
>From David.Billinghurst@riotinto.com.au Wed Jul 07 16:55:00 1999
From: "Billinghurst, David (RTD)" <David.Billinghurst@riotinto.com.au>
To: "Billinghurst, David (RTD)" <David.Billinghurst@riotinto.com.au>, "'egcs-bugs@egcs.cygnus.com'" <egcs-bugs@egcs.cygnus.com>
Cc: "'egcs@egcs.cygnus.com'" <egcs@egcs.cygnus.com>
Subject: RE: single precision complex bug in g77 - was Testing g77 with LAPACK 3.0
Date: Wed, 07 Jul 1999 16:55:00 -0000
Message-id: <A9E96A79C068D211A6A90000C07BDF0D1DE8E5@CRTSMAIL>
X-SW-Source: 1999-07/msg00280.html
Content-length: 693
Here is a slightly simpler and neater test case
program labug3
implicit none
* This program gives the wrong answer on mips-sgi-irix6.5
* when compiled with g77 from egcs-19990629 (gcc 2.95 prerelease)
* Get a = 0.0 when it should be 1.0
*
* Works with: -femulate-complex
* egcs-1.1.2
*
* Originally derived from LAPACK 3.0 test suite.
*
* David Billinghurst, (David.Billinghurst@riotinto.com.au)
* 8 July 1999
*
complex one, z
real a, f1
f1(z) = real(z)
one = (1.,0.)
a = f1(one)
if ( abs(a-1.0) .gt. 1.0e-5 ) then
write(6,*) 'A should be 1.0 but it is',a
call abort()
end if
end
>
>From wilson@cygnus.com Wed Jul 07 17:32:00 1999
From: Jim Wilson <wilson@cygnus.com>
To: Toon Moene <toon@moene.indiv.nluug.nl>
Cc: "Billinghurst, David (RTD)" <David.Billinghurst@riotinto.com.au>, "'egcs-bugs@egcs.cygnus.com'" <egcs-bugs@egcs.cygnus.com>
Subject: Re: single precision complex bug in g77 - was Testing g77 with LAPACK 3.0
Date: Wed, 07 Jul 1999 17:32:00 -0000
Message-id: <199907080032.RAA26170@rtl.cygnus.com>
References: <3783B4A2.525A830B@moene.indiv.nluug.nl>
X-SW-Source: 1999-07/msg00281.html
Content-length: 1637
Using current egcs development sources, it works if I compile with -O, and
fails without.
Without optimization, it is a calling convention problem. We try to pass
a single precision complex to the function cabs1.0, which requires loading
two SFmode values. We generate RTL to load them both into the same register
and this code obviously doesn't work.
(insn 26 24 28 (set (reg:SF 4 a0)
(mem/f:SF (reg:SI 77) 0)) -1 (nil)
(nil))
(insn 28 26 30 (set (reg:SF 4 a0)
(mem/f:SF (plus:SI (reg:SI 77)
(const_int 4 [0x4])) 0)) -1 (nil)
(nil))
This has always been a problem with the complex support. There was some
discussion last year about trying to fix this in the alpha port, but I don't
know what came of that.
The bad code comes from emit_move_insn_1 in the CONCAT case. It does
=> emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_realpart (submode, x), gen_realpart (submode, y)));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_imagpart (submode, x), gen_imagpart (submode, y)));
which emits two loads into the same register when x is a register big
enough to hold the entire complex value. This code can work for registers
only if the register is equal to or smaller than one half the size of the
complex type.
The single register was chosen by the mips FUNCTION_ARG macro.
The problem can probably be fixed in either area. It isn't clear which is
best. We need to make sure that we emit correct ABI compliant code for this
case which may constrain the possible solutions.
Jim
>From wael@acm.org Wed Jul 07 19:17:00 1999
From: Wael Hassan <wael@acm.org>
To: egcs-bugs@egcs.cygnus.com
Subject: bug
Date: Wed, 07 Jul 1999 19:17:00 -0000
Message-id: <3783D261.7C67E8CD@acm.org>
X-SW-Source: 1999-07/msg00282.html
Content-length: 272
/usr/include/g++-2/streambuf.h:260: Internal compiler error.
/usr/include/g++-2/streambuf.h:260: Please submit a full bug report to
`egcs-bugs@egcs.cygnus.com'.
/usr/include/g++-2/streambuf.h:260: See
<URL: http://egcs.cygnus.com/faq.html#bugreport > for details.
Wael
^ permalink raw reply [flat|nested] 7+ messages in thread
* Bugreport on g77-2.95 19990629 (prerelease)
@ 1999-07-31 23:33 Mathias Froehlich
1999-07-05 14:11 ` craig
1999-08-31 22:45 ` Jeffrey A Law
0 siblings, 2 replies; 7+ messages in thread
From: Mathias Froehlich @ 1999-07-31 23:33 UTC (permalink / raw)
To: egcs-bugs
Hi egcs Team!
I have probably found a bug in g77-2.95 19990629 (prerelease)
(i686-pc-linux-gnu). I use a RedHat-6.0 system.
The file sgeqpf.f from LAPACK (you can find it in the SRC
subdirectory of the LAPACK source tree) seem to be misscompiled using
this and many previous versions of egcs.
I can observe an infinite loop while executing
xeigtsts < gsv.in > sgsv.out
in the TESTING directory of the LAPACK source tree. The libraries I
used to bild xeigtsts are all perfectly tested (no failed tests in
LAPACK/TESTING!) only sgeqpf.o is replaced with a new object file.
If I compile sgeqpf.f with the command line
g77 -O2 -march=pentiumpro -c sgeqpf.f -o sgeqpf.o
I see that infinite loop.
If I compile using one of the following two combinations
g77 -O2 -mcpu=pentiumpro -c sgeqpf.f -o sgeqpf.o
g77 -O1 -march=pentiumpro -c sgeqpf.f -o sgeqpf.o
everything works perfect.
The infinite loop happens in slapmt. This function interpretes the
permutation which is generated by sgeqpf (the argument called JPVT).
Ok. This is what I know so far.
If you have further questions feel free to contact me.
(frohlich@na.uni-tuebingen.de)
Regards,
Mathias Froehlich
--
Mathias Fr"ohlich e-mail: frohlich@na.uni-tuebingen.de
Institut f"ur Mathematik, Universit"at T"ubingen, D-72076 T"ubingen
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bugreport on g77-2.95 19990629 (prerelease)
1999-08-31 22:45 ` Jeffrey A Law
@ 1999-08-07 5:28 ` Toon Moene
0 siblings, 0 replies; 7+ messages in thread
From: Toon Moene @ 1999-08-07 5:28 UTC (permalink / raw)
To: law; +Cc: Mathias Froehlich, egcs-bugs
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 11086 bytes --]
Jeffrey A Law wrote:
> In message <14207.52319.216353.567348@na12>you write:
> > I have probably found a bug in g77-2.95 19990629 (prerelease)
> > (i686-pc-linux-gnu). I use a RedHat-6.0 system.
> >
> > The file sgeqpf.f from LAPACK (you can find it in the SRC
> > subdirectory of the LAPACK source tree) seem to be misscompiled using
> > this and many previous versions of egcs.
> >
> > I can observe an infinite loop while executing
> >
> > xeigtsts < gsv.in > sgsv.out
> >
> > in the TESTING directory of the LAPACK source tree. The libraries I
> > used to bild xeigtsts are all perfectly tested (no failed tests in
> > LAPACK/TESTING!) only sgeqpf.o is replaced with a new object file.
> >
> > If I compile sgeqpf.f with the command line
> >
> > g77 -O2 -march=pentiumpro -c sgeqpf.f -o sgeqpf.o
> >
> > I see that infinite loop.
> I just tried this using the release branch and was unable to reproduce the
> problem.
That might be because you're working with the LAPACK 3.0 sources. I
could reproduce this bug report with LAPACK 2.0, which Mathias was
probably using - however, I never came around debugging it.
BTW, I'm still wondering how you get LAPACK 3.0 to run - do you only
have machines with at least half a Gig of memory in them ?
comp.lang.fortran is full of messages by people who get SIGSEGVs when
running the LAPACK 3.0 test programs - apparently this huge array
allocation in xlintims is not only a problem with g77.
HTH,
--
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
GNU Fortran: http://world.std.com/~burley/g77.html
>From lucier@math.purdue.edu Sat Aug 07 08:08:00 1999
From: Brad Lucier <lucier@math.purdue.edu>
To: rth@cygnus.com (Richard Henderson)
Cc: lucier@math.purdue.edu (Brad Lucier), amylaar@cygnus.co.uk (Joern Rennecke), gcc@gcc.gnu.org, gcc-bugs@gcc.gnu.org, staff@math.purdue.edu, hosking@cs.purdue.edu, wilker@math.purdue.edu, bernds@cygnus.com, gcc-patches@gcc.gnu.org
Subject: Re: big slowdown in egcs-1.1.2->gcc-2.95 on alpha
Date: Sat, 07 Aug 1999 08:08:00 -0000
Message-id: <199908071507.KAA01061@polya.math.purdue.edu>
References: <19990807010414.A25476@cygnus.com>
X-SW-Source: 1999-08/msg00299.html
Content-length: 390
> The following should kill bitmap_bit_p from the interesting
> functions.
I'm leaving town in about an hour, and won't be able to test this
patch until I get e-mail access or I get back on the 16th.
The *.i files I'm using to test 'cc1 -fPIC -O1' are at
http://www.math.purdue.edu/~lucier/testcases.tar.gz
in case anyone else wants to try them.
Brad Lucier lucier@math.purdue.edu
>From lucier@math.purdue.edu Sat Aug 07 08:27:00 1999
From: Brad Lucier <lucier@math.purdue.edu>
To: rth@cygnus.com (Richard Henderson)
Cc: lucier@math.purdue.edu (Brad Lucier), amylaar@cygnus.co.uk (Joern Rennecke), gcc@gcc.gnu.org, gcc-bugs@gcc.gnu.org, staff@math.purdue.edu, hosking@cs.purdue.edu, wilker@math.purdue.edu, bernds@cygnus.com, gcc-patches@gcc.gnu.org
Subject: Re: big slowdown in egcs-1.1.2->gcc-2.95 on alpha
Date: Sat, 07 Aug 1999 08:27:00 -0000
Message-id: <199908071527.KAA01084@polya.math.purdue.edu>
References: <19990807010414.A25476@cygnus.com>
X-SW-Source: 1999-08/msg00300.html
Content-length: 1129
>
> On Fri, Aug 06, 1999 at 11:27:32PM -0500, Brad Lucier wrote:
> > Each sample counts as 0.000976562 seconds.
> > % cumulative self self total
> > time seconds seconds calls ms/call ms/call name
> > 35.63 55.32 55.32 16 3457.52 3458.44 prune_preferences
> > 12.51 74.75 19.43 391960848 0.00 0.00 bitmap_bit_p
>
> The following should kill bitmap_bit_p from the interesting
> functions.
Right on ...
Flat profile:
Each sample counts as 0.000976562 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
44.25 56.94 56.94 16 3558.59 3559.59 prune_preferences
8.93 68.43 11.49 202789 0.06 0.06 record_one_conflict
2.05 71.07 2.64 40979048 0.00 0.00 bitmap_bit_p
1.88 73.49 2.42 8 303.10 16018.62 yyparse
1.67 75.65 2.15 27806760 0.00 0.00 count_pseudo
1.58 77.68 2.03 15315 0.13 0.47 order_regs_for_reload
Brad Lucier lucier@math.purdue.edu
>From INTERNET@WEBTV.NET Sat Aug 07 09:02:00 1999
From: <INTERNET @WEBTV.NET>
To: egcs@cygnus.com
Subject: $$CASH IN ON THE INTERNET EXPLOSION!$$
Date: Sat, 07 Aug 1999 09:02:00 -0000
Message-id: <12490.934041734.0@NO-ID-FOUND.mhonarc.org>
X-SW-Source: 1999-08/msg00301.html
Content-length: 1559
Make $1,250-$2,000 A Week, Start your own profitable internet
business.
Tired of the dead-end nine to five world in which you're
working? There is a way out: A home-based business. If you're
looking for the home business opportunity that's just right for
you, you'll want the valuable information we have to offer
Whether you are looking for an opportunity to earn a little
extra spending money or you are looking for a way out of the
nine-to-five rat race, you'll find this information to be exactly
what you need to help you get started.
You'll learn how to start your own business on the internet.
Have you ever dreamed of waking up in the morning, getting your
cup of coffee, reading the morning paper and then walking over to
your computer to see how much money you made last night while you
were asleep?
We'll show you how to start your business from start to finish
on the internet.
FOR FREE DETAILS: Send name and address to: ONTIMEPUBL@AOL.COM
Please give name and address. Your request will be processed
within 24 hours of receiving.
Cordially,
Ted Rankin
Advertising Account Executive
-----------------------------------------------------------------
This message is sent in compliance of the new email bill section
301. Per section 301 paragraph (a)(2)(c) of S.1618, Further
transmissions to you by the sender of this email may be stopped
at no cost to you by clicking reply and type remove in the
subject line. Your request will be processed within 24 hours.
>From mark@codesourcery.com Sat Aug 07 09:42:00 1999
From: Mark Mitchell <mark@codesourcery.com>
To: drow@false.org
Cc: gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] Re: [C++] SEGV in mapcar() with a CALL_EXPR
Date: Sat, 07 Aug 1999 09:42:00 -0000
Message-id: <19990807094551O.mitchell@codesourcery.com>
References: <19990804131959.A4656@them.org> <19990806185129.A32012@them.org>
X-SW-Source: 1999-08/msg00302.html
Content-length: 349
Thanks for your analysis. This isn't really the right fix; the right
fix is that make_call_declarator shouldn't be storing a tree in a slot
documented to be RTL. I'll put this in my queue of things to work on
in the near future.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
>From drow@false.org Sat Aug 07 09:54:00 1999
From: Daniel Jacobowitz <drow@false.org>
To: Mark Mitchell <mark@codesourcery.com>
Cc: gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] Re: [C++] SEGV in mapcar() with a CALL_EXPR
Date: Sat, 07 Aug 1999 09:54:00 -0000
Message-id: <19990807125708.A11765@them.org>
References: <19990804131959.A4656@them.org> <19990806185129.A32012@them.org> <19990807094551O.mitchell@codesourcery.com>
X-SW-Source: 1999-08/msg00303.html
Content-length: 798
On Sat, Aug 07, 1999 at 09:45:51AM -0700, Mark Mitchell wrote:
>
> Thanks for your analysis. This isn't really the right fix; the right
> fix is that make_call_declarator shouldn't be storing a tree in a slot
> documented to be RTL. I'll put this in my queue of things to work on
> in the near future.
Yes, that was my thought also, but I didn't know enough about the
layout and issues involved to figure out where else to put it :)
Dan
/--------------------------------\ /--------------------------------\
| Daniel Jacobowitz |__| SCS Class of 2002 |
| Debian GNU/Linux Developer __ Carnegie Mellon University |
| dan@debian.org | | dmj+@andrew.cmu.edu |
\--------------------------------/ \--------------------------------/
>From casteyde.christian@free.fr Sat Aug 07 10:45:00 1999
From: "christian casteyde" <casteyde.christian@free.fr>
To: <gcc-bugs@gcc.gnu.org>
Subject: Try constructors kills exception mechanism when base class constructors throws one
Date: Sat, 07 Aug 1999 10:45:00 -0000
Message-id: <000001bee0fc$d5480580$b9301bd4@neptune>
X-SW-Source: 1999-08/msg00304.html
Content-length: 1926
gcc version :
   2.95 (for win32, mingw32
version)
   Not yet verified under Linux, (time to
compile gcc).
system type :
   PC machine, Pentium Pro 233 MHz, 64 RAM,
HDD1 4 Go, HDD2 8 Go, win95.
   I will soon test under SuSE 6.1, kernel
2.2.10, recompiled with gcc 2.8.1.
options passed :
    -lstdc++.
   Command line : "gcc bug.cpp
-lstdc++"
Â
Bug description :
   When a base class constructor throws an
exception that is to be caught in the try-constructor of a derived class, the
exception is caught and everything is OK. But this works only once : if
another object is built, the exception is not caught anymore and cause the
program termination. So this mechanisms does work only once, and I do
not found on the draft papers that this should be as this (maybe I missed
something, in this case, tell me simply "you missed it"). In fact, it seems that
no exception can be caught at all after that, hence the exception
mechanism seems to be confused.
Â
copy of the source file :
Â
-- BEGIN OF FILE --
Â
#include <iostream.h>
Â
// A GCC bug !
Â
class Base { public
: Â Â Â Â Â Â Â Base(void); };
Â
Base::Base(void) { Â Â Â Â Â Â Â throw
2; }
Â
class A : public Base { public
: Â Â Â Â Â Â Â A(void); };
Â
A::A(void) try : Base() { } catch
(...) { Â Â Â Â Â Â Â cout << "Got !"
<< endl; }
Â
int
main(void) { Â Â Â Â Â Â Â A
a;Â Â Â Â Â Â Â Â Â Â Â // Works,
but kills exception mechanism !
Â
// This does not work
anymore... Â Â Â Â Â Â Â A b; // Neither do
this (each cause "abnormal program termination)
: Â Â Â Â Â Â Â
try       Â
{ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
throw 'e'; Â Â Â Â Â Â Â
} Â Â Â Â Â Â Â catch
(...) Â Â Â Â Â Â Â
{ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
cout << "I would be glad to catch this one !" <<
endl; Â Â Â Â Â Â Â
} Â Â Â Â Â Â Â cout << "End" <<
endl; Â Â Â Â Â Â Â return
0; }
-- END OF FILE --
Â
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bugreport on g77-2.95 19990629 (prerelease)
1999-07-31 23:33 Bugreport on g77-2.95 19990629 (prerelease) Mathias Froehlich
1999-07-05 14:11 ` craig
@ 1999-08-31 22:45 ` Jeffrey A Law
1999-08-07 5:28 ` Toon Moene
1 sibling, 1 reply; 7+ messages in thread
From: Jeffrey A Law @ 1999-08-31 22:45 UTC (permalink / raw)
To: Mathias Froehlich; +Cc: egcs-bugs
In message <14207.52319.216353.567348@na12>you write:
>
> Hi egcs Team!
>
> I have probably found a bug in g77-2.95 19990629 (prerelease)
> (i686-pc-linux-gnu). I use a RedHat-6.0 system.
>
> The file sgeqpf.f from LAPACK (you can find it in the SRC
> subdirectory of the LAPACK source tree) seem to be misscompiled using
> this and many previous versions of egcs.
>
> I can observe an infinite loop while executing
>
> xeigtsts < gsv.in > sgsv.out
>
> in the TESTING directory of the LAPACK source tree. The libraries I
> used to bild xeigtsts are all perfectly tested (no failed tests in
> LAPACK/TESTING!) only sgeqpf.o is replaced with a new object file.
>
> If I compile sgeqpf.f with the command line
>
> g77 -O2 -march=pentiumpro -c sgeqpf.f -o sgeqpf.o
>
> I see that infinite loop.
> If I compile using one of the following two combinations
>
> g77 -O2 -mcpu=pentiumpro -c sgeqpf.f -o sgeqpf.o
> g77 -O1 -march=pentiumpro -c sgeqpf.f -o sgeqpf.o
I just tried this using the release branch and was unable to reproduce the
problem.
jeff
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Bugreport on g77-2.95 19990629 (prerelease)
@ 1999-07-31 23:33 toon
0 siblings, 0 replies; 7+ messages in thread
From: toon @ 1999-07-31 23:33 UTC (permalink / raw)
To: egcs-bugs
I was able to reproduce Mathias findings as follows
- I compiled all of LAPACK with -O2 -g
- This passes the test
- Then I compiled sgeqpf.f with -O2 -g -march=i686 - hang
=======================================================
cat sgeqpf.f
SUBROUTINE SGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO )
*
* -- LAPACK test routine (version 2.0) --
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
* Courant Institute, Argonne National Lab, and Rice University
* March 31, 1993
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, M, N
* ..
* .. Array Arguments ..
INTEGER JPVT( * )
REAL A( LDA, * ), TAU( * ), WORK( * )
* ..
*
* Purpose
* =======
*
* SGEQPF computes a QR factorization with column pivoting of a
* real M-by-N matrix A: A*P = Q*R.
*
* Arguments
* =========
*
* M (input) INTEGER
* The number of rows of the matrix A. M >= 0.
*
* N (input) INTEGER
* The number of columns of the matrix A. N >= 0
*
* A (input/output) REAL array, dimension (LDA,N)
* On entry, the M-by-N matrix A.
* On exit, the upper triangle of the array contains the
* min(M,N)-by-N upper triangular matrix R; the elements
* below the diagonal, together with the array TAU,
* represent the orthogonal matrix Q as a product of
* min(m,n) elementary reflectors.
*
* LDA (input) INTEGER
* The leading dimension of the array A. LDA >= max(1,M).
*
* JPVT (input/output) INTEGER array, dimension (N)
* On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted
* to the front of A*P (a leading column); if JPVT(i) = 0,
* the i-th column of A is a free column.
* On exit, if JPVT(i) = k, then the i-th column of A*P
* was the k-th column of A.
*
* TAU (output) REAL array, dimension (min(M,N))
* The scalar factors of the elementary reflectors.
*
* WORK (workspace) REAL array, dimension (3*N)
*
* INFO (output) INTEGER
* = 0: successful exit
* < 0: if INFO = -i, the i-th argument had an illegal value
*
* Further Details
* ===============
*
* The matrix Q is represented as a product of elementary reflectors
*
* Q = H(1) H(2) . . . H(n)
*
* Each H(i) has the form
*
* H = I - tau * v * v'
*
* where tau is a real scalar, and v is a real vector with
* v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i).
*
* The matrix P is represented in jpvt as follows: If
* jpvt(j) = i
* then the jth column of P is the ith canonical unit vector.
*
* =====================================================================
*
* .. Parameters ..
REAL ZERO, ONE
PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 )
* ..
* .. Local Scalars ..
INTEGER I, ITEMP, J, MA, MN, PVT
REAL AII, TEMP, TEMP2
* ..
* .. External Subroutines ..
EXTERNAL SGEQR2, SLARF, SLARFG, SORM2R, SSWAP, XERBLA
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN, SQRT
* ..
* .. External Functions ..
INTEGER ISAMAX
REAL SNRM2
EXTERNAL ISAMAX, SNRM2
* ..
* .. Executable Statements ..
*
* Test the input arguments
*
INFO = 0
IF( M.LT.0 ) THEN
INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
ELSE IF( LDA.LT.MAX( 1, M ) ) THEN
INFO = -4
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'SGEQPF', -INFO )
RETURN
END IF
*
MN = MIN( M, N )
*
* Move initial columns up front
*
ITEMP = 1
DO 10 I = 1, N
IF( JPVT( I ).NE.0 ) THEN
IF( I.NE.ITEMP ) THEN
CALL SSWAP( M, A( 1, I ), 1, A( 1, ITEMP ), 1 )
JPVT( I ) = JPVT( ITEMP )
JPVT( ITEMP ) = I
ELSE
JPVT( I ) = I
END IF
ITEMP = ITEMP + 1
ELSE
JPVT( I ) = I
END IF
10 CONTINUE
ITEMP = ITEMP - 1
*
* Compute the QR factorization and update remaining columns
*
IF( ITEMP.GT.0 ) THEN
MA = MIN( ITEMP, M )
CALL SGEQR2( M, MA, A, LDA, TAU, WORK, INFO )
IF( MA.LT.N ) THEN
CALL SORM2R( 'Left', 'Transpose', M, N-MA, MA, A, LDA, TAU,
$ A( 1, MA+1 ), LDA, WORK, INFO )
END IF
END IF
*
IF( ITEMP.LT.MN ) THEN
*
* Initialize partial column norms. The first n elements of
* work store the exact column norms.
*
DO 20 I = ITEMP + 1, N
WORK( I ) = SNRM2( M-ITEMP, A( ITEMP+1, I ), 1 )
WORK( N+I ) = WORK( I )
20 CONTINUE
*
* Compute factorization
*
DO 40 I = ITEMP + 1, MN
*
* Determine ith pivot column and swap if necessary
*
PVT = ( I-1 ) + ISAMAX( N-I+1, WORK( I ), 1 )
*
IF( PVT.NE.I ) THEN
CALL SSWAP( M, A( 1, PVT ), 1, A( 1, I ), 1 )
ITEMP = JPVT( PVT )
JPVT( PVT ) = JPVT( I )
JPVT( I ) = ITEMP
WORK( PVT ) = WORK( I )
WORK( N+PVT ) = WORK( N+I )
END IF
*
* Generate elementary reflector H(i)
*
IF( I.LT.M ) THEN
CALL SLARFG( M-I+1, A( I, I ), A( I+1, I ), 1, TAU( I ) )
ELSE
CALL SLARFG( 1, A( M, M ), A( M, M ), 1, TAU( M ) )
END IF
*
IF( I.LT.N ) THEN
*
* Apply H(i) to A(i:m,i+1:n) from the left
*
AII = A( I, I )
A( I, I ) = ONE
CALL SLARF( 'LEFT', M-I+1, N-I, A( I, I ), 1, TAU( I ),
$ A( I, I+1 ), LDA, WORK( 2*N+1 ) )
A( I, I ) = AII
END IF
*
* Update partial column norms
*
DO 30 J = I + 1, N
IF( WORK( J ).NE.ZERO ) THEN
TEMP = ONE - ( ABS( A( I, J ) ) / WORK( J ) )**2
TEMP = MAX( TEMP, ZERO )
TEMP2 = ONE + 0.05*TEMP*( WORK( J ) / WORK( N+J ) )**2
IF( TEMP2.EQ.ONE ) THEN
IF( M-I.GT.0 ) THEN
WORK( J ) = SNRM2( M-I, A( I+1, J ), 1 )
WORK( N+J ) = WORK( J )
ELSE
WORK( J ) = ZERO
WORK( N+J ) = ZERO
END IF
ELSE
WORK( J ) = WORK( J )*SQRT( TEMP )
END IF
END IF
30 CONTINUE
*
40 CONTINUE
END IF
RETURN
*
* End of SGEQPF
*
END
=======================================================
diff sgeqpf.s.noi686 sgeqpf.s.i686
93,96c93
< movl (%eax),%edx
< leal 0(,%edx,4),%ecx
< movl %ecx,-56(%ebp)
< .stabn 68,0,102,.LM2-sgeqpf_
---
> .stabn 68,0,101,.LM2-sgeqpf_
98,100d94
< movl 8(%ebp),%ecx
< .stabn 68,0,101,.LM3-sgeqpf_
< .LM3:
102c96,98
< movl $0,(%ebx)
---
> .stabn 68,0,1,.LM3-sgeqpf_
> .LM3:
> movl (%eax),%ecx
105,108c101,102
< movl (%ecx),%eax
< testl %eax,%eax
< jge .L3
< .stabn 68,0,103,.LM5-sgeqpf_
---
> movl 8(%ebp),%eax
> .stabn 68,0,1,.LM5-sgeqpf_
110,111c104,106
< movl $-1,(%ebx)
< .stabn 68,0,104,.LM6-sgeqpf_
---
> leal 0(,%ecx,4),%edx
> movl %edx,-56(%ebp)
> .stabn 68,0,101,.LM6-sgeqpf_
112a108,118
> movl $0,(%ebx)
> .stabn 68,0,102,.LM7-sgeqpf_
> .LM7:
> movl (%eax),%edx
> testl %edx,%edx
> jge .L3
> .stabn 68,0,103,.LM8-sgeqpf_
> .LM8:
> movl $-1,(%ebx)
> .stabn 68,0,104,.LM9-sgeqpf_
> .LM9:
119,120c125,126
< .stabn 68,0,105,.LM7-sgeqpf_
< .LM7:
---
> .stabn 68,0,105,.LM10-sgeqpf_
> .LM10:
123,124c129,130
< .stabn 68,0,106,.LM8-sgeqpf_
< .LM8:
---
> .stabn 68,0,106,.LM11-sgeqpf_
> .LM11:
128,129d133
< cmpl $1,%eax
< jge .L8
131,132c135,137
< .L8:
< cmpl %eax,%edx
---
> testl %edx,%edx
> cmovg %edx,%eax
> cmpl %eax,%ecx
134,135c139,140
< .stabn 68,0,107,.LM9-sgeqpf_
< .LM9:
---
> .stabn 68,0,107,.LM12-sgeqpf_
> .LM12:
139,140c144,145
< .stabn 68,0,109,.LM10-sgeqpf_
< .LM10:
---
> .stabn 68,0,109,.LM13-sgeqpf_
> .LM13:
145,146c150,151
< .stabn 68,0,110,.LM11-sgeqpf_
< .LM11:
---
> .stabn 68,0,110,.LM14-sgeqpf_
> .LM14:
155,156c160,161
< .stabn 68,0,111,.LM12-sgeqpf_
< .LM12:
---
> .stabn 68,0,111,.LM15-sgeqpf_
> .LM15:
160,161c165,167
< .stabn 68,0,114,.LM13-sgeqpf_
< .LM13:
---
> .stabn 68,0,114,.LM16-sgeqpf_
> .LM16:
> .LBB3:
165d170
< movl %ebx,-68(%ebp)
167,173c172,176
< cmpl %eax,%ebx
< jle .L10
< movl %eax,-68(%ebp)
< .L10:
< .stabn 68,0,118,.LM14-sgeqpf_
< .LM14:
< .LBB3:
---
> cmpl %eax,-68(%ebp)
> cmovg %eax,%ebx
> movl %ebx,-68(%ebp)
> .stabn 68,0,118,.LM17-sgeqpf_
> .LM17:
175,176c178,179
< .stabn 68,0,119,.LM15-sgeqpf_
< .LM15:
---
> .stabn 68,0,119,.LM18-sgeqpf_
> .LM18:
187,188c190,191
< .stabn 68,0,120,.LM16-sgeqpf_
< .LM16:
---
> .stabn 68,0,120,.LM19-sgeqpf_
> .LM19:
191,192c194,195
< .stabn 68,0,121,.LM17-sgeqpf_
< .LM17:
---
> .stabn 68,0,121,.LM20-sgeqpf_
> .LM20:
196,197c199,200
< .stabn 68,0,122,.LM18-sgeqpf_
< .LM18:
---
> .stabn 68,0,122,.LM21-sgeqpf_
> .LM21:
207,208c210,211
< .stabn 68,0,123,.LM19-sgeqpf_
< .LM19:
---
> .stabn 68,0,123,.LM22-sgeqpf_
> .LM22:
211,212c214,215
< .stabn 68,0,124,.LM20-sgeqpf_
< .LM20:
---
> .stabn 68,0,124,.LM23-sgeqpf_
> .LM23:
215,216c218,219
< .stabn 68,0,125,.LM21-sgeqpf_
< .LM21:
---
> .stabn 68,0,125,.LM24-sgeqpf_
> .LM24:
221,222c224,225
< .stabn 68,0,126,.LM22-sgeqpf_
< .LM22:
---
> .stabn 68,0,126,.LM25-sgeqpf_
> .LM25:
226,227c229,230
< .stabn 68,0,128,.LM23-sgeqpf_
< .LM23:
---
> .stabn 68,0,128,.LM26-sgeqpf_
> .LM26:
232,233c235,236
< .stabn 68,0,129,.LM24-sgeqpf_
< .LM24:
---
> .stabn 68,0,129,.LM27-sgeqpf_
> .LM27:
237,238c240,241
< .stabn 68,0,130,.LM25-sgeqpf_
< .LM25:
---
> .stabn 68,0,130,.LM28-sgeqpf_
> .LM28:
241,242c244,245
< .stabn 68,0,132,.LM26-sgeqpf_
< .LM26:
---
> .stabn 68,0,132,.LM29-sgeqpf_
> .LM29:
251,252c254,255
< .stabn 68,0,133,.LM27-sgeqpf_
< .LM27:
---
> .stabn 68,0,133,.LM30-sgeqpf_
> .LM30:
254,255c257,258
< .stabn 68,0,137,.LM28-sgeqpf_
< .LM28:
---
> .stabn 68,0,137,.LM31-sgeqpf_
> .LM31:
258,259c261,262
< .stabn 68,0,138,.LM29-sgeqpf_
< .LM29:
---
> .stabn 68,0,138,.LM32-sgeqpf_
> .LM32:
268,269c271,272
< .stabn 68,0,139,.LM30-sgeqpf_
< .LM30:
---
> .stabn 68,0,139,.LM33-sgeqpf_
> .LM33:
286,287c289,290
< .stabn 68,0,140,.LM31-sgeqpf_
< .LM31:
---
> .stabn 68,0,140,.LM34-sgeqpf_
> .LM34:
294,295c297,298
< .stabn 68,0,141,.LM32-sgeqpf_
< .LM32:
---
> .stabn 68,0,141,.LM35-sgeqpf_
> .LM35:
325,326c328,329
< .stabn 68,0,143,.LM33-sgeqpf_
< .LM33:
---
> .stabn 68,0,143,.LM36-sgeqpf_
> .LM36:
329,330c332,333
< .stabn 68,0,146,.LM34-sgeqpf_
< .LM34:
---
> .stabn 68,0,146,.LM37-sgeqpf_
> .LM37:
334,335c337,338
< .stabn 68,0,151,.LM35-sgeqpf_
< .LM35:
---
> .stabn 68,0,151,.LM38-sgeqpf_
> .LM38:
362,363c365,366
< .stabn 68,0,152,.LM36-sgeqpf_
< .LM36:
---
> .stabn 68,0,152,.LM39-sgeqpf_
> .LM39:
377,378c380,381
< .stabn 68,0,153,.LM37-sgeqpf_
< .LM37:
---
> .stabn 68,0,153,.LM40-sgeqpf_
> .LM40:
383,384c386,387
< .stabn 68,0,154,.LM38-sgeqpf_
< .LM38:
---
> .stabn 68,0,154,.LM41-sgeqpf_
> .LM41:
386,387c389,390
< .stabn 68,0,153,.LM39-sgeqpf_
< .LM39:
---
> .stabn 68,0,153,.LM42-sgeqpf_
> .LM42:
390,391c393,394
< .stabn 68,0,154,.LM40-sgeqpf_
< .LM40:
---
> .stabn 68,0,154,.LM43-sgeqpf_
> .LM43:
398,399c401,402
< .stabn 68,0,158,.LM41-sgeqpf_
< .LM41:
---
> .stabn 68,0,158,.LM44-sgeqpf_
> .LM44:
427,428c430,431
< .stabn 68,0,162,.LM42-sgeqpf_
< .LM42:
---
> .stabn 68,0,162,.LM45-sgeqpf_
> .LM45:
447,448c450,451
< .stabn 68,0,164,.LM43-sgeqpf_
< .LM43:
---
> .stabn 68,0,164,.LM46-sgeqpf_
> .LM46:
453,454c456,457
< .stabn 68,0,165,.LM44-sgeqpf_
< .LM44:
---
> .stabn 68,0,165,.LM47-sgeqpf_
> .LM47:
470,471c473,474
< .stabn 68,0,166,.LM45-sgeqpf_
< .LM45:
---
> .stabn 68,0,166,.LM48-sgeqpf_
> .LM48:
473,474c476,477
< .stabn 68,0,167,.LM46-sgeqpf_
< .LM46:
---
> .stabn 68,0,167,.LM49-sgeqpf_
> .LM49:
476,477c479,480
< .stabn 68,0,166,.LM47-sgeqpf_
< .LM47:
---
> .stabn 68,0,166,.LM50-sgeqpf_
> .LM50:
481,482c484,485
< .stabn 68,0,167,.LM48-sgeqpf_
< .LM48:
---
> .stabn 68,0,167,.LM51-sgeqpf_
> .LM51:
485,486c488,489
< .stabn 68,0,168,.LM49-sgeqpf_
< .LM49:
---
> .stabn 68,0,168,.LM52-sgeqpf_
> .LM52:
489,490c492,493
< .stabn 68,0,169,.LM50-sgeqpf_
< .LM50:
---
> .stabn 68,0,169,.LM53-sgeqpf_
> .LM53:
492,493c495,496
< .stabn 68,0,171,.LM51-sgeqpf_
< .LM51:
---
> .stabn 68,0,171,.LM54-sgeqpf_
> .LM54:
495,496c498,499
< .stabn 68,0,170,.LM52-sgeqpf_
< .LM52:
---
> .stabn 68,0,170,.LM55-sgeqpf_
> .LM55:
498,499c501,502
< .stabn 68,0,169,.LM53-sgeqpf_
< .LM53:
---
> .stabn 68,0,169,.LM56-sgeqpf_
> .LM56:
502,503c505,506
< .stabn 68,0,170,.LM54-sgeqpf_
< .LM54:
---
> .stabn 68,0,170,.LM57-sgeqpf_
> .LM57:
512,513c515,516
< .stabn 68,0,175,.LM55-sgeqpf_
< .LM55:
---
> .stabn 68,0,175,.LM58-sgeqpf_
> .LM58:
518,519c521,522
< .stabn 68,0,176,.LM56-sgeqpf_
< .LM56:
---
> .stabn 68,0,176,.LM59-sgeqpf_
> .LM59:
538,539c541,542
< .stabn 68,0,177,.LM57-sgeqpf_
< .LM57:
---
> .stabn 68,0,177,.LM60-sgeqpf_
> .LM60:
543,544c546,547
< .stabn 68,0,178,.LM58-sgeqpf_
< .LM58:
---
> .stabn 68,0,178,.LM61-sgeqpf_
> .LM61:
560,561c563,564
< .stabn 68,0,179,.LM59-sgeqpf_
< .LM59:
---
> .stabn 68,0,179,.LM62-sgeqpf_
> .LM62:
563,564c566,567
< .stabn 68,0,181,.LM60-sgeqpf_
< .LM60:
---
> .stabn 68,0,181,.LM63-sgeqpf_
> .LM63:
569,570c572,573
< .stabn 68,0,185,.LM61-sgeqpf_
< .LM61:
---
> .stabn 68,0,185,.LM64-sgeqpf_
> .LM64:
574,575c577,578
< .stabn 68,0,187,.LM62-sgeqpf_
< .LM62:
---
> .stabn 68,0,187,.LM65-sgeqpf_
> .LM65:
578,579c581,582
< .stabn 68,0,185,.LM63-sgeqpf_
< .LM63:
---
> .stabn 68,0,185,.LM66-sgeqpf_
> .LM66:
582,583c585,586
< .stabn 68,0,186,.LM64-sgeqpf_
< .LM64:
---
> .stabn 68,0,186,.LM67-sgeqpf_
> .LM67:
585,586c588,589
< .stabn 68,0,187,.LM65-sgeqpf_
< .LM65:
---
> .stabn 68,0,187,.LM68-sgeqpf_
> .LM68:
622,623c625,626
< .stabn 68,0,189,.LM66-sgeqpf_
< .LM66:
---
> .stabn 68,0,189,.LM69-sgeqpf_
> .LM69:
627,628c630,631
< .stabn 68,0,190,.LM67-sgeqpf_
< .LM67:
---
> .stabn 68,0,190,.LM70-sgeqpf_
> .LM70:
631,632c634,635
< .stabn 68,0,194,.LM68-sgeqpf_
< .LM68:
---
> .stabn 68,0,194,.LM71-sgeqpf_
> .LM71:
671,672c674,675
< .stabn 68,0,195,.LM69-sgeqpf_
< .LM69:
---
> .stabn 68,0,195,.LM72-sgeqpf_
> .LM72:
674,677c677,680
< fucom %st(1)
< fnstsw %ax
< andb $69,%ah
< cmpb $64,%ah
---
> fucomi %st(1),%st
> setne %al
> setp %ah
> orb %al,%ah
679,680c682,683
< .stabn 68,0,196,.LM70-sgeqpf_
< .LM70:
---
> .stabn 68,0,196,.LM73-sgeqpf_
> .LM73:
690,695c693,696
< .stabn 68,0,197,.LM71-sgeqpf_
< .LM71:
< fcom %st(3)
< fnstsw %ax
< andb $5,%ah
< je .L44
---
> .stabn 68,0,197,.LM74-sgeqpf_
> .LM74:
> fcomi %st(3),%st
> jae .L44
700,701c701,702
< .stabn 68,0,198,.LM72-sgeqpf_
< .LM72:
---
> .stabn 68,0,198,.LM75-sgeqpf_
> .LM75:
713,718c714,720
< .stabn 68,0,199,.LM73-sgeqpf_
< .LM73:
< fucompp
< fnstsw %ax
< andb $68,%ah
< xorb $64,%ah
---
> .stabn 68,0,199,.LM76-sgeqpf_
> .LM76:
> fucomip %st(1),%st
> fstp %st(0)
> setne %al
> setp %ah
> orb %al,%ah
721,722c723,724
< .stabn 68,0,200,.LM74-sgeqpf_
< .LM74:
---
> .stabn 68,0,200,.LM77-sgeqpf_
> .LM77:
728,729c730,731
< .stabn 68,0,201,.LM75-sgeqpf_
< .LM75:
---
> .stabn 68,0,201,.LM78-sgeqpf_
> .LM78:
745,746c747,748
< .stabn 68,0,202,.LM76-sgeqpf_
< .LM76:
---
> .stabn 68,0,202,.LM79-sgeqpf_
> .LM79:
750,751c752,753
< .stabn 68,0,203,.LM77-sgeqpf_
< .LM77:
---
> .stabn 68,0,203,.LM80-sgeqpf_
> .LM80:
753,754c755,756
< .stabn 68,0,202,.LM78-sgeqpf_
< .LM78:
---
> .stabn 68,0,202,.LM81-sgeqpf_
> .LM81:
757,758c759,760
< .stabn 68,0,203,.LM79-sgeqpf_
< .LM79:
---
> .stabn 68,0,203,.LM82-sgeqpf_
> .LM82:
763,764c765,766
< .stabn 68,0,204,.LM80-sgeqpf_
< .LM80:
---
> .stabn 68,0,204,.LM83-sgeqpf_
> .LM83:
766,767c768,769
< .stabn 68,0,205,.LM81-sgeqpf_
< .LM81:
---
> .stabn 68,0,205,.LM84-sgeqpf_
> .LM84:
773,774c775,776
< .stabn 68,0,207,.LM82-sgeqpf_
< .LM82:
---
> .stabn 68,0,207,.LM85-sgeqpf_
> .LM85:
778,779c780,781
< .stabn 68,0,208,.LM83-sgeqpf_
< .LM83:
---
> .stabn 68,0,208,.LM86-sgeqpf_
> .LM86:
785,786c787,788
< .stabn 68,0,211,.LM84-sgeqpf_
< .LM84:
---
> .stabn 68,0,211,.LM87-sgeqpf_
> .LM87:
801,802c803,804
< .stabn 68,0,213,.LM85-sgeqpf_
< .LM85:
---
> .stabn 68,0,213,.LM88-sgeqpf_
> .LM88:
811,812c813,814
< .stabn 68,0,215,.LM86-sgeqpf_
< .LM86:
---
> .stabn 68,0,215,.LM89-sgeqpf_
> .LM89:
=======================================================
Any Intel Insider seeing what is wrong ... Toon.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~1999-08-31 22:45 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-07-31 23:33 Bugreport on g77-2.95 19990629 (prerelease) Mathias Froehlich
1999-07-05 14:11 ` craig
1999-07-06 4:38 ` Mathias Froehlich
1999-07-07 14:57 ` Toon Moene
1999-08-31 22:45 ` Jeffrey A Law
1999-08-07 5:28 ` Toon Moene
-- strict thread matches above, loose matches on Subject: below --
1999-07-31 23:33 toon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).