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).