* bug when upgrading bnu210->bnu211 ?
@ 2001-06-23 10:43 Maurice Lombardi
2001-06-23 21:55 ` Mark E.
0 siblings, 1 reply; 6+ messages in thread
From: Maurice Lombardi @ 2001-06-23 10:43 UTC (permalink / raw)
To: gpc, Pavenis, Andris, binutils
Hi all,
I have recently upgraded binutils, from bnu210 to bnu211
(all on djgpp v2.03)
I used it to compile gpc-20010605 and ran the test suite.
Everything is OK except for a bug in fay.pas which was not
present with bnu210 (with the same gpc sources).
C:\djgpp\b\gnu\gcc-2.953\gcc\p\test>gpc -g -O3 --autobuild fay.pas
c:/djgpp/tmp\ccdaaaaa: Assembler messages:
c:/djgpp/tmp\ccdaaaaa:934: Fatal error: C_EFCN symbol out of scope
This is related to COFF debugging: it compiles and runs perfectly
without the -g option. Looking into coff.h, I found
#define C_EFCN 0xff /* physical end of function */
and line 934 is the last line of fay.s, so this seems consistent.
Looking to gpc mail archives I found two occurences of the
same error in the same test program fay.pas, in mails from andris
when we upgraded from gcc-2.95.2 to gcc-2.95.3, and which disappeared
when his suggestions enabled to compile gpc.
Nothing I can think about with such an erratic bug.
For reference, if somebody has an idea, I have uploaded to agnes
in the directory
ftp://agnes.dida.physik.uni-essen.de/home/maurice/
gpc compiled with the two versions of bnu (names are explicit),
and the modified version of gcc2953s2.zip I used to compile them:
modifications include a libiberty/configure.in.diff necessary
to use version 2.50 of autoconf and changes in build.bat and djbuild1.sh
to compile only gcc and gpc instead of the whole compiler collection.
Meanwhile I reverted to bnu210 and the link gpc2953b.zip points to the
bnu210 version.
Hope this helps (little hope in fact)
Maurice.
--
Maurice Lombardi
Laboratoire de Spectrometrie Physique,
Universite Joseph Fourier de Grenoble, BP87
38402 Saint Martin d'Heres Cedex FRANCE
Tel: 33 (0)4 76 51 47 51
Fax: 33 (0)4 76 51 45 44
mailto:Maurice.Lombardi@ujf-grenoble.fr
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bug when upgrading bnu210->bnu211 ?
2001-06-23 10:43 bug when upgrading bnu210->bnu211 ? Maurice Lombardi
@ 2001-06-23 21:55 ` Mark E.
2001-06-25 2:11 ` Maurice Lombardi
0 siblings, 1 reply; 6+ messages in thread
From: Mark E. @ 2001-06-23 21:55 UTC (permalink / raw)
To: djgpp, binutils
On Sat, 23 Jun 2001 21:51:30 +0200, you wrote:
>C:\djgpp\b\gnu\gcc-2.953\gcc\p\test>gpc -g -O3 --autobuild fay.pas
>c:/djgpp/tmp\ccdaaaaa: Assembler messages:
>c:/djgpp/tmp\ccdaaaaa:934: Fatal error: C_EFCN symbol out of scope
Please post the assembly file generated by compiling fay.pas (in other words use -S
and then post fay.s) and we'll be in a better position to help you. It's possible
binutils 2.11 is catching an problem with gpc, or it's possible that binutils 2.11 is
the problem. But from the information you've provided so far, it's impossible to
tell.
Mark
--
Mark E.: snowball3@bigfoot.com
http://snowball.frogspace.net/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bug when upgrading bnu210->bnu211 ?
2001-06-23 21:55 ` Mark E.
@ 2001-06-25 2:11 ` Maurice Lombardi
2001-06-25 10:52 ` Mark E.
0 siblings, 1 reply; 6+ messages in thread
From: Maurice Lombardi @ 2001-06-25 2:11 UTC (permalink / raw)
To: djgpp; +Cc: binutils
Mark E. wrote:
> On Sat, 23 Jun 2001 21:51:30 +0200, you wrote:
>
>
>> C:\djgpp\b\gnu\gcc-2.953\gcc\p\test>gpc -g -O3 --autobuild fay.pas
>> c:/djgpp/tmp\ccdaaaaa: Assembler messages:
>> c:/djgpp/tmp\ccdaaaaa:934: Fatal error: C_EFCN symbol out of scope
>
>
> Please post the assembly file generated by compiling fay.pas (in other words use -S
> and then post fay.s) and we'll be in a better position to help you. It's possible
> binutils 2.11 is catching an problem with gpc, or it's possible that binutils 2.11 is
> the problem. But from the information you've provided so far, it's impossible to
> tell.
>
> Mark
Here it is, compiled with
gpc -g -S -O3 fay.pas
---------------------------------------------------------------------------------------
.text
.def _.0fake; .scl 10; .type 010; .size 12; .endef
.def _Capacity; .val 0; .scl 8; .type 016; .endef
.def _length; .val 4; .scl 8; .type 016; .endef
.def __p_schema_; .val 8; .scl 8; .dim 1; .size 1; .type 060; .endef
.def .eos; .val 12; .scl 102; .tag _.0fake; .size 12; .endef
.def _.1fake; .scl 10; .type 010; .size 36; .endef
.def _Datevalid; .val 0; .scl 8; .type 014; .endef
.def _Timevalid; .val 1; .scl 8; .type 014; .endef
.def _Year; .val 4; .scl 8; .type 04; .endef
.def _Month; .val 8; .scl 8; .type 04; .endef
.def _Day; .val 12; .scl 8; .type 04; .endef
.def _Dayofweek; .val 16; .scl 8; .type 04; .endef
.def _Hour; .val 20; .scl 8; .type 04; .endef
.def _Minute; .val 24; .scl 8; .type 04; .endef
.def _Second; .val 28; .scl 8; .type 04; .endef
.def _Microsecond; .val 32; .scl 8; .type 04; .endef
.def .eos; .val 36; .scl 102; .tag _.1fake; .size 36; .endef
.def _.2fake; .scl 10; .type 010; .size 2060; .endef
.def _Capacity; .val 0; .scl 8; .type 016; .endef
.def _length; .val 4; .scl 8; .type 016; .endef
.def __p_schema_; .val 8; .scl 8; .dim 2049; .size 2049; .type 060; .endef
.def .eos; .val 2060; .scl 102; .tag _.2fake; .size 2060; .endef
.def _.3fake; .scl 10; .type 010; .size 2140; .endef
.def _Bound; .val 0; .scl 8; .type 014; .endef
.def _Force; .val 1; .scl 8; .type 014; .endef
.def _Extensions_valid; .val 2; .scl 8; .type 014; .endef
.def _Readable; .val 3; .scl 8; .type 014; .endef
.def _Writable; .val 4; .scl 8; .type 014; .endef
.def _Executable; .val 5; .scl 8; .type 014; .endef
.def _Existing; .val 6; .scl 8; .type 014; .endef
.def _Directory; .val 7; .scl 8; .type 014; .endef
.def _Special; .val 8; .scl 8; .type 014; .endef
.def _Symlink; .val 9; .scl 8; .type 014; .endef
.def _Size; .val 12; .scl 8; .type 05; .endef
.def _Accesstime; .val 20; .scl 8; .type 05; .endef
.def _Modificationtime; .val 28; .scl 8; .type 05; .endef
.def _Changetime; .val 36; .scl 8; .type 05; .endef
.def _User; .val 44; .scl 8; .type 04; .endef
.def _Group; .val 48; .scl 8; .type 04; .endef
.def _Mode; .val 52; .scl 8; .type 04; .endef
.def _Device; .val 56; .scl 8; .type 04; .endef
.def _Inode; .val 60; .scl 8; .type 04; .endef
.def _Links; .val 64; .scl 8; .type 04; .endef
.def _Textbinary; .val 68; .scl 8; .type 014; .endef
.def _Handle; .val 72; .scl 8; .type 04; .endef
.def _Closeflag; .val 76; .scl 8; .type 014; .endef
.def _Name; .val 80; .scl 8; .tag _.2fake; .size 2060; .type 010; .endef
.def .eos; .val 2140; .scl 102; .tag _.3fake; .size 2140; .endef
.file "fay.pas"
gcc2_compiled.:
___gnu_compiled_pascal:
.def _Integer; .scl 13; .type 04; .endef
.def _Node; .scl 13; .type 016; .endef
.def _Debug; .val _Debug; .scl 3; .type 014; .endef
.lcomm _Debug,4
LC0:
.ascii " to TakeUSCC\0"
LC1:
.ascii "YieldUSCC passes\0"
LC2:
.ascii "stacking \0"
LC3:
.ascii "Doing successors of \0"
LC4:
.ascii " is an SCC root\0"
LC5:
.ascii "Now checking if \0"
LC6:
.ascii " T=\0"
LC7:
.ascii " is an SCC root; SP=\0"
LC8:
.ascii " out to TakeUSCC\0"
LC9:
.ascii "Yield SCC should pass \0"
.p2align 2
.def _Dousuccessor; .val _Dousuccessor.8; .scl 3; .type 041; .endef
_Dousuccessor.8:
.def .bf; .val .; .scl 101; .line 45; .endef
.def _W; .val 8; .scl 9; .type 016; .endef
.def _W; .val 7; .scl 4; .type 016; .endef
pushl %ebp
movl %esp,%ebp
subl $12,%esp
pushl %edi
pushl %esi
pushl %ebx
movl 8(%ebp),%edi
movl %ecx,-4(%ebp)
movl %ecx,%esi
.ln 2
addl $-12,%esp
.ln 1
movl -4(%esi),%ebx
.ln 2
pushl %edi
movl %ebx,%ecx
call _Search.5
.ln 3
movl -8(%esi),%eax
addl $16,%esp
movl -18008(%ebx),%edx
movl (%eax),%eax
movl (%edx,%edi,4),%ecx
cmpl (%edx,%eax,4),%ecx
jge L6
movl %ecx,(%edx,%eax,4)
L6:
.ln 4
movl -18012(%ebx),%edx
addl $-8,%esp
pushl %edi
movl -8(%esi),%eax
movl (%eax),%eax
pushl %eax
movl 12(%edx),%eax
call *%eax
leal -24(%ebp),%esp
popl %ebx
popl %esi
popl %edi
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 4; .endef
.def _Dousuccessor; .val .; .scl -1; .endef
.p2align 2
.def _Eachumember; .val _Eachumember.11; .scl 3; .type 041; .endef
_Eachumember.11:
.def .bf; .val .; .scl 101; .line 53; .endef
.def _P; .val 8; .scl 9; .type 0221; .endef
.def _I; .val 3; .scl 4; .type 04; .endef
.def .bb; .val .; .scl 100; .line 1; .endef
.def ___for_lower_0__; .val 2; .scl 4; .type 04; .endef
.def ___for_upper_1__; .val 7; .scl 4; .type 04; .endef
pushl %ebp
movl %esp,%ebp
subl $12,%esp
pushl %edi
pushl %esi
pushl %ebx
movl %ecx,-4(%ebp)
movl -4(%ecx),%eax
.ln 2
movl -12(%ecx),%edi
movl -18016(%eax),%edx
cmpl %edi,%edx
jl L8
movl %edx,%ebx
leal -18004(%eax),%esi
jmp L9
.p2align 4,,7
L12:
decl %ebx
L9:
.ln 3
movl (%esi,%ebx,4),%eax
addl $-12,%esp
pushl %eax
movl 8(%ebp),%eax
call *%eax
.ln 2
addl $16,%esp
cmpl %edi,%ebx
jg L12
L8:
leal -24(%ebp),%esp
popl %ebx
popl %esi
popl %edi
movl %ebp,%esp
popl %ebp
ret
.ln 4
.def .eb; .val .; .scl 100; .line 4; .endef
.def .ef; .val .; .scl 101; .line 4; .endef
.def _Eachumember; .val .; .scl -1; .endef
.p2align 2
.def _Search; .val _Search.5; .scl 3; .type 041; .endef
_Search.5:
.def .bf; .val .; .scl 101; .line 43; .endef
.def _V; .val 8; .scl 9; .type 016; .endef
.def _I; .val 3; .scl 4; .type 04; .endef
.def _T; .val -12; .scl 1; .type 04; .endef
pushl %ebp
movl %esp,%ebp
subl $60,%esp
leal 8(%ebp),%eax
movl $_Dousuccessor.8-10,%edx
pushl %edi
pushl %esi
pushl %ebx
movl %ecx,-4(%ebp)
movl %ecx,-48(%ebp)
movl %eax,-8(%ebp)
leal -44(%ebp),%eax
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
leal -28(%ebp),%eax
movl $_Eachumember.11-10,%edx
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
.ln 23
movl -48(%ebp),%ecx
movl 8(%ebp),%edx
movl -18008(%ecx),%eax
cmpl $0,(%eax,%edx,4)
jne L17
.def .bb; .val .; .scl 100; .line 23; .endef
.ln 24
cmpb $0,_Debug
je L18
addl $-12,%esp
pushl $22
pushl %edx
pushl $8
pushl $9
pushl $LC2
pushl $17
pushl $3
pushl $384
pushl $__p_stdout
call __p_write
addl $48,%esp
cmpl $0,__p_InOutRes
je L18
call __p_check_inoutres
L18:
.ln 25
movl -48(%ebp),%esi
.ln 26
movl %esi,%ebx
addl $-18004,%ebx
.ln 27
movl %ebx,%edi
.ln 25
movl -18016(%esi),%eax
incl %eax
movl %eax,-18016(%esi)
.ln 26
movl 8(%ebp),%ecx
movl %ecx,(%ebx,%eax,4)
movl -18008(%esi),%edx
movl -18016(%esi),%eax
movl %eax,(%edx,%ecx,4)
.ln 27
cmpb $0,_Debug
je L20
addl $-12,%esp
pushl $22
movl 8(%ebp),%eax
pushl %eax
pushl $8
pushl $20
pushl $LC3
pushl $17
pushl $3
pushl $384
pushl $__p_stdout
call __p_write
addl $48,%esp
cmpl $0,__p_InOutRes
je L20
call __p_check_inoutres
L20:
.ln 28
movl -48(%ebp),%eax
addl $-8,%esp
movl -18012(%eax),%edx
leal -41(%ebp),%eax
andb $252,%al
pushl %eax
movl 8(%ebp),%eax
pushl %eax
movl 8(%edx),%eax
call *%eax
.ln 29
addl $16,%esp
cmpb $0,_Debug
je L22
pushl $22
pushl $15
pushl $LC4
pushl $17
movl 8(%ebp),%eax
pushl %eax
pushl $8
pushl $16
pushl $LC5
pushl $17
pushl $4
pushl $384
pushl $__p_stdout
call __p_write
addl $48,%esp
cmpl $0,__p_InOutRes
je L22
call __p_check_inoutres
L22:
.ln 30
movl -48(%ebp),%ecx
movl 8(%ebp),%edx
movl -18008(%ecx),%eax
movl (%eax,%edx,4),%eax
cmpl (%edi,%eax,4),%edx
jne L17
.def .bb; .val .; .scl 100; .line 30; .endef
.def ___for_lower_2__; .val 0; .scl 4; .type 04; .endef
.def ___for_upper_3__; .val 6; .scl 4; .type 04; .endef
.ln 31
movl %eax,-12(%ebp)
.ln 32
cmpb $0,_Debug
je L25
pushl $22
pushl %eax
pushl $3
pushl $3
pushl $LC6
pushl $17
movl -18016(%ecx),%eax
pushl %eax
pushl $3
pushl $20
pushl $LC7
pushl $17
pushl %edx
pushl $8
pushl $6
pushl $384
pushl $__p_stdout
call __p_write
addl $64,%esp
cmpl $0,__p_InOutRes
je L25
call __p_check_inoutres
L25:
.ln 33
movl -48(%ebp),%esi
movl -18016(%esi),%eax
movl -12(%ebp),%esi
cmpl %esi,%eax
jl L27
movl %eax,%ebx
movl %edi,-52(%ebp)
jmp L28
.p2align 4,,7
L31:
decl %ebx
L28:
movl -52(%ebp),%edi
movl -48(%ebp),%eax
movl (%edi,%ebx,4),%ecx
movl -18008(%eax),%edx
movl -18020(%eax),%eax
movl %eax,(%edx,%ecx,4)
cmpl %esi,%ebx
jg L31
L27:
.ln 34
movl -48(%ebp),%edx
movl -12(%ebp),%eax
cmpl %eax,-18016(%edx)
je L33
.ln 35
cmpb $0,_Debug
je L34
pushl $22
pushl $16
pushl $LC8
pushl $17
movl 8(%ebp),%eax
pushl %eax
pushl $8
pushl $22
pushl $LC9
pushl $17
pushl $4
pushl $384
pushl $__p_stdout
call __p_write
addl $48,%esp
cmpl $0,__p_InOutRes
je L34
call __p_check_inoutres
L34:
.ln 17
.def .bb; .val .; .scl 100; .line 17; .endef
.def .bb; .val .; .scl 100; .line 17; .endef
.def .bb; .val .; .scl 100; .line 17; .endef
movl -4(%ebp),%esi
movl %ebp,%ebx
.ln 18
cmpb $0,_Debug
je L36
pushl $22
pushl $12
pushl $LC0
pushl $17
movl -8(%ebp),%eax
movl (%eax),%eax
pushl %eax
pushl $8
pushl $16
pushl $LC1
pushl $17
pushl $4
pushl $384
pushl $__p_stdout
call __p_write
addl $48,%esp
cmpl $0,__p_InOutRes
je L36
call __p_check_inoutres
L36:
.ln 19
movl -18012(%esi),%edx
addl $-8,%esp
leal -28(%ebx),%eax
pushl %eax
movl -8(%ebx),%eax
movl (%eax),%eax
pushl %eax
movl 16(%edx),%eax
call *%eax
.ln 20
.def .eb; .val .; .scl 100; .line 20; .endef
.def .eb; .val .; .scl 100; .line 20; .endef
.def .eb; .val .; .scl 100; .line 20; .endef
L33:
.ln 38
movl -12(%ebp),%esi
movl -48(%ebp),%ecx
decl %esi
movl %esi,-18016(%ecx)
.ln 39
.def .eb; .val .; .scl 100; .line 39; .endef
.ln 40
.def .eb; .val .; .scl 100; .line 40; .endef
L17:
leal -72(%ebp),%esp
popl %ebx
popl %esi
popl %edi
movl %ebp,%esp
popl %ebp
ret
.ln 41
.def .ef; .val .; .scl 101; .line 41; .endef
.def _Search; .val .; .scl -1; .endef
.p2align 2
.def _P; .val _P.2; .scl 3; .type 041; .endef
_P.2:
.def .bf; .val .; .scl 101; .line 40; .endef
.def _T; .val 8; .scl 9; .type 016; .endef
.def _T; .val 2; .scl 4; .type 016; .endef
pushl %ebp
movl %esp,%ebp
subl $24,%esp
movl 8(%ebp),%edx
movl %ecx,-4(%ebp)
movl -18008(%ecx),%eax
movl $0,(%eax,%edx,4)
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 1; .endef
.def _P; .val .; .scl -1; .endef
.p2align 2
.def _Eachuscc; .val _Eachuscc; .scl 2; .type 041; .endef
.globl _Eachuscc
_Eachuscc:
.def .bf; .val .; .scl 101; .line 34; .endef
.def _Eachunode; .val 8; .scl 9; .type 0221; .endef
.def _Eachunodeutousearch; .val 12; .scl 9; .type 0221; .endef
.def _R; .val 16; .scl 9; .type 0221; .endef
.def _Propagate; .val 20; .scl 9; .type 0221; .endef
.def _Takeuscc; .val 24; .scl 9; .type 0221; .endef
.def _Lastunode; .val 28; .scl 9; .type 04; .endef
.def _Eachunode; .val 3; .scl 4; .type 0221; .endef
.def _Eachunodeutousearch; .val 6; .scl 4; .type 0221; .endef
.def _Lastunode; .val 1; .scl 4; .type 04; .endef
.def _A; .scl 13; .dim 4501; .size 18004; .type 064; .endef
.def _N; .val -18008; .scl 1; .dim 4501; .size 4; .type 0324; .endef
.def _Sp; .val -18016; .scl 1; .type 04; .endef
.def _Stack; .val -18004; .scl 1; .dim 4501; .size 18004; .type 076; .endef
.def _Infinity; .val -18020; .scl 1; .type 04; .endef
pushl %ebp
movl %esp,%ebp
subl $18064,%esp
leal 8(%ebp),%eax
movl $_Search.5-10,%edx
pushl %esi
pushl %ebx
movl 8(%ebp),%ebx
movl 12(%ebp),%esi
movl 28(%ebp),%ecx
movl %eax,-18012(%ebp)
leal -18052(%ebp),%eax
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
leal -18036(%ebp),%eax
movl $_P.2-10,%edx
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
.ln 52
incl %ecx
movl %ecx,-18020(%ebp)
addl $-12,%esp
pushl $18004
call __p_new
movl %eax,-18008(%ebp)
.ln 53
addl $-12,%esp
leal -18036(%ebp),%eax
pushl %eax
call *%ebx
.ln 54
movl $0,-18016(%ebp)
.ln 55
addl $32,%esp
addl $-12,%esp
leal -18052(%ebp),%eax
pushl %eax
call *%esi
.ln 56
movl -18008(%ebp),%eax
addl $-12,%esp
pushl %eax
call __p_dispose
leal -18072(%ebp),%esp
popl %ebx
popl %esi
movl %ebp,%esp
popl %ebp
ret
.ln 57
.def .ef; .val .; .scl 101; .line 57; .endef
.def _Eachuscc; .val .; .scl -1; .endef
LC10:
.ascii " from YieldUSCC\0"
LC11:
.ascii "TakeUSCC receives V=\0"
LC12:
.ascii "The SCC's constituents are:\0"
.p2align 2
.def _P; .val _P.37; .scl 3; .type 041; .endef
_P.37:
.def .bf; .val .; .scl 101; .line 112; .endef
.def _T; .val 8; .scl 9; .type 016; .endef
.def _T; .val 0; .scl 4; .type 016; .endef
.def .bb; .val .; .scl 100; .line 1; .endef
pushl %ebp
movl %esp,%ebp
subl $24,%esp
movl 8(%ebp),%eax
movl %ecx,-4(%ebp)
addl $-12,%esp
pushl %eax
pushl $8
pushl $1
pushl $384
pushl $__p_stdout
call __p_write
addl $32,%esp
cmpl $0,__p_InOutRes
je L52
call __p_check_inoutres
L52:
movl %ebp,%esp
popl %ebp
ret
.def .eb; .val .; .scl 100; .line 1; .endef
.def .ef; .val .; .scl 101; .line 1; .endef
.def _P; .val .; .scl -1; .endef
.p2align 2
.def _Takeuscc; .val _Takeuscc.34; .scl 3; .type 041; .endef
_Takeuscc.34:
.def .bf; .val .; .scl 101; .line 112; .endef
.def _Root; .val 8; .scl 9; .type 016; .endef
.def _Each; .val 12; .scl 9; .type 0221; .endef
.def _Root; .val 0; .scl 4; .type 016; .endef
.def _Each; .val 3; .scl 4; .type 0221; .endef
.def .bb; .val .; .scl 100; .line 1; .endef
pushl %ebp
movl %esp,%ebp
subl $36,%esp
leal -20(%ebp),%edx
pushl %ebx
movl 8(%ebp),%eax
movl 12(%ebp),%ebx
movl %ecx,-4(%ebp)
movl $_P.37-10,%ecx
movb $185,(%edx)
movl %ebp,1(%edx)
movb $233,5(%edx)
subl %edx,%ecx
movl %ecx,6(%edx)
.ln 3
pushl $22
pushl $15
pushl $LC10
pushl $17
pushl %eax
pushl $8
pushl $20
pushl $LC11
pushl $17
pushl $4
pushl $384
pushl $__p_stdout
call __p_write
addl $48,%esp
cmpl $0,__p_InOutRes
je L53
call __p_check_inoutres
L53:
.ln 4
addl $-4,%esp
pushl $22
pushl $27
pushl $LC12
pushl $17
pushl $2
pushl $384
pushl $__p_stdout
call __p_write
addl $32,%esp
cmpl $0,__p_InOutRes
je L54
call __p_check_inoutres
L54:
.ln 5
addl $-12,%esp
leal -17(%ebp),%eax
andb $252,%al
pushl %eax
call *%ebx
pushl $22
pushl $1
pushl $384
pushl $__p_stdout
call __p_write
addl $32,%esp
cmpl $0,__p_InOutRes
je L55
call __p_check_inoutres
L55:
movl -40(%ebp),%ebx
movl %ebp,%esp
popl %ebp
ret
.ln 6
.def .eb; .val .; .scl 100; .line 6; .endef
.def .ef; .val .; .scl 101; .line 6; .endef
.def _Takeuscc; .val .; .scl -1; .endef
.p2align 2
.def _Eachunodeutousearch; .val _Eachunodeutousearch.22; .scl 3; .type 041; .endef
_Eachunodeutousearch.22:
.def .bf; .val .; .scl 101; .line 95; .endef
.def _Search; .val 8; .scl 9; .type 0221; .endef
.def _Search; .val 0; .scl 4; .type 0221; .endef
pushl %ebp
movl %esp,%ebp
subl $24,%esp
movl 8(%ebp),%eax
movl %ecx,-4(%ebp)
.ln 2
addl $-12,%esp
pushl $1
call *%eax
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 2; .endef
.def _Eachunodeutousearch; .val .; .scl -1; .endef
.p2align 2
.def _Eachunode; .val _Eachunode.25; .scl 3; .type 041; .endef
_Eachunode.25:
.def .bf; .val .; .scl 101; .line 99; .endef
.def _P; .val 8; .scl 9; .type 0221; .endef
.def _P; .val 3; .scl 4; .type 0221; .endef
pushl %ebp
movl %esp,%ebp
subl $20,%esp
pushl %ebx
movl 8(%ebp),%ebx
movl %ecx,-4(%ebp)
addl $-12,%esp
pushl $1
call *%ebx
addl $-12,%esp
pushl $2
call *%ebx
movl -24(%ebp),%ebx
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 1; .endef
.def _Eachunode; .val .; .scl -1; .endef
.p2align 2
.def _R; .val _R.28; .scl 3; .type 041; .endef
_R.28:
.def .bf; .val .; .scl 101; .line 102; .endef
.def _V; .val 8; .scl 9; .type 016; .endef
.def _P; .val 12; .scl 9; .type 0221; .endef
.def _V; .val 0; .scl 4; .type 016; .endef
.def _P; .val 2; .scl 4; .type 0221; .endef
pushl %ebp
movl %esp,%ebp
subl $24,%esp
movl 8(%ebp),%eax
movl 12(%ebp),%edx
movl %ecx,-4(%ebp)
cmpl $1,%eax
je L45
cmpl $2,%eax
je L46
jmp L44
.p2align 4,,7
L45:
.ln 5
addl $-12,%esp
pushl $2
call *%edx
jmp L44
.p2align 4,,7
L46:
.ln 6
addl $-12,%esp
pushl $1
call *%edx
.def _case_4; .val L44; .scl 6; .type 00; .endef
L44:
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 6; .endef
.def _R; .val .; .scl -1; .endef
.p2align 2
.def _Propagate; .val _Propagate.31; .scl 3; .type 041; .endef
_Propagate.31:
.def .bf; .val .; .scl 101; .line 110; .endef
.def _V; .val 8; .scl 9; .type 016; .endef
.def _W; .val 12; .scl 9; .type 016; .endef
pushl %ebp
movl %esp,%ebp
subl $24,%esp
movl %ecx,-4(%ebp)
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 1; .endef
.def _Propagate; .val .; .scl -1; .endef
.p2align 2
.def _Q; .val _Q.19; .scl 3; .type 041; .endef
_Q.19:
.def .bf; .val .; .scl 101; .line 94; .endef
pushl %ebp
movl %esp,%ebp
subl $104,%esp
movl %ecx,-4(%ebp)
leal -84(%ebp),%eax
movl $_Eachunode.25-10,%edx
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
leal -68(%ebp),%eax
movl $_Eachunodeutousearch.22-10,%edx
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
leal -52(%ebp),%eax
movl $_R.28-10,%edx
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
leal -36(%ebp),%eax
movl $_Propagate.31-10,%edx
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
leal -20(%ebp),%eax
movl $_Takeuscc.34-10,%edx
movb $185,(%eax)
movl %ebp,1(%eax)
movb $233,5(%eax)
subl %eax,%edx
movl %edx,6(%eax)
.ln 26
addl $-8,%esp
pushl $2
pushl %eax
leal -36(%ebp),%eax
pushl %eax
leal -52(%ebp),%eax
pushl %eax
leal -68(%ebp),%eax
pushl %eax
leal -84(%ebp),%eax
pushl %eax
call _Eachuscc
movl %ebp,%esp
popl %ebp
ret
.ln 27
.def .ef; .val .; .scl 101; .line 27; .endef
.def _Q; .val .; .scl -1; .endef
.p2align 2
.def _Outer; .val _Outer; .scl 2; .type 041; .endef
.globl _Outer
_Outer:
.def .bf; .val .; .scl 101; .line 93; .endef
.def .bb; .val .; .scl 100; .line 1; .endef
pushl %ebp
movl %esp,%ebp
subl $8,%esp
.ln 32
movl %ebp,%ecx
call _Q.19
movl %ebp,%esp
popl %ebp
ret
.ln 33
.def .eb; .val .; .scl 100; .line 33; .endef
.ln 37
.def .ef; .val .; .scl 101; .line 37; .endef
.def _Outer; .val .; .scl -1; .endef
.p2align 2
.def _pascal_main_program; .val _pascal_main_program; .scl 2; .type 041; .endef
.globl _pascal_main_program
_pascal_main_program:
.def .bf; .val .; .scl 101; .line 131; .endef
pushl %ebp
movl %esp,%ebp
subl $8,%esp
.ln 2
movb $1,_Debug
.ln 3
call _Outer
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 3; .endef
.def _pascal_main_program; .val .; .scl -1; .endef
.data
_ctor_run_condition_5.47:
.byte 1
.text
.p2align 2
.def _init_pascal_main_program; .val _init_pascal_main_program; .scl 2; .type 041; .endef
.globl _init_pascal_main_program
_init_pascal_main_program:
.def .bf; .val .; .scl 101; .line 134; .endef
.def _ctor_run_condition_5; .val _ctor_run_condition_5.47; .scl 3; .type 014; .endef
pushl %ebp
movl %esp,%ebp
subl $8,%esp
cmpb $0,_ctor_run_condition_5.47
je L60
movb $0,_ctor_run_condition_5.47
addl $-12,%esp
pushl $_fini_pascal_main_program
call __p_atexit
L60:
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 1; .endef
.def _init_pascal_main_program; .val .; .scl -1; .endef
.p2align 2
.def _fini_pascal_main_program; .val _fini_pascal_main_program; .scl 2; .type 041; .endef
.globl _fini_pascal_main_program
_fini_pascal_main_program:
.def .bf; .val .; .scl 101; .line 134; .endef
pushl %ebp
movl %esp,%ebp
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 1; .endef
.def _fini_pascal_main_program; .val .; .scl -1; .endef
.p2align 2
.def _main; .val _main; .scl 2; .type 044; .endef
.globl _main
_main:
.def .bf; .val .; .scl 101; .line 134; .endef
.def _argc; .val 8; .scl 9; .type 04; .endef
.def _argv; .val 12; .scl 9; .type 0120; .endef
.def _envp; .val 16; .scl 9; .type 0120; .endef
.def _argc; .val 1; .scl 4; .type 04; .endef
.def _argv; .val 2; .scl 4; .type 0120; .endef
.def _envp; .val 0; .scl 4; .type 0120; .endef
pushl %ebp
movl %esp,%ebp
subl $8,%esp
movl 8(%ebp),%ecx
movl 12(%ebp),%edx
movl 16(%ebp),%eax
addl $-4,%esp
pushl %eax
pushl %edx
pushl %ecx
call __p_initialize
call _init_pascal_main_program
call _pascal_main_program
call __p_finalize
xorl %eax,%eax
movl %ebp,%esp
popl %ebp
ret
.def .ef; .val .; .scl 101; .line 1; .endef
.def _main; .val .; .scl -1; .endef
------------------------------------------------------------------------------------
For reference here is fay.pas (comments deleted at begin and end)
-------------------------------------------------------------------------------------
program fay(output);
type integer = -32767..32768; node = 0..4500;
var Debug: boolean;
procedure EachUSCC( { of relation R }
{ Pass in an iterator to generate the nodes to be searched,
the relation on the nodes, a procedure to do information
propagation when V R W is discovered, a procedure
to take each SCC found, and a procedure to yield each
node in the graph.
We require that the nodes be of a scalar type so that
an array may be indexed by them. Also passed in is the
upper bound of the node type. }
procedure EachUnode(procedure P(T:node)); { Yields each node in graph }
procedure EachUnodeUtoUsearch(procedure SearchU(V:node));
procedure R(V:node; procedure DoUsuccessor(W:node));
procedure Propagate(V,W:node); { called when V R W is discovered }
procedure TakeUSCC(Root:node; procedure Each(procedure P(T:node)));
LastUnode: integer
);
type
A = array[node] of integer; { range 0..Infinity (below) }
var N: ^A; SP: integer;
Stack: array[node {1..LastUnode}] of node;
Infinity: integer; { LastUnode+1 }
procedure P(T:node); begin N^[T] := 0; end;
procedure Search(V:node);
var I,T:integer;
procedure DoUsuccessor(W:node);
begin
Search(W);
if N^[W] < N^[V] then N^[V] := N^[W];
Propagate(V,W);
end;
{ EachUmember is yielded by EachUSCC when an SCC has been found. }
procedure EachUmember(procedure P(TU:node));
var I:integer;
begin { yield each member of current SCC }
for I := SP downto T do P(Stack[I]);
end;
procedure YieldUSCC;
begin
if Debug then writeln('YieldUSCC passes',V,' to TakeUSCC');
TakeUSCC(V,EachUmember);
end;
begin
if N^[V] = 0 then begin { stack the node }
if Debug then writeln('stacking ',V);
SP := SP+1;
Stack[SP] := V; N^[V] := SP;
if Debug then writeln('Doing successors of ',V);
R(V,DoUsuccessor);
if Debug then writeln('Now checking if ',V,' is an SCC root');
if V = Stack[N^[V]] then begin { V is root of an SCC }
T := N^[V];
if Debug then writeln(V,' is an SCC root; SP=',SP,' T=',T);
for I := SP downto T do N^[Stack[I]] := Infinity;
if SP <> T then begin
if Debug then writeln('Yield SCC should pass ',V,' out to TakeUSCC');
YieldUSCC;
end;
SP := T-1;
end;
end;
end;
begin
Infinity := LastUnode+1;
new(N); EachUnode(P);
SP := 0;
EachUnodeUtoUsearch(Search);
dispose(N);
end;
procedure Outer; { needed to produce bug in Berkeley Pascal compiler }
procedure q;
procedure EachUnodeUtoUsearch(procedure Search(T:node));
begin
Search(1);
end;
procedure EachUnode(procedure P(T:node));
begin P(1); P(2);
end;
procedure R(V:node; procedure P(W:node));
begin
{ Defines graph with edges 1->2 and 2->1 }
{ Thus, the graph contains one SCC: [1,2] }
case V of
1: P(2);
2: P(1);
end;
end;
procedure Propagate(V,W:node); begin end;
procedure TakeUSCC(Root:node; procedure Each(procedure P(T:node)));
procedure P(T:node); begin write(T); end;
begin
writeln('TakeUSCC receives V=',Root,' from YieldUSCC');
writeln('The SCC''s constituents are:');
Each(P); writeln;
end;
begin
EachUSCC(EachUnode,EachUnodeUtoUsearch,R,Propagate,TakeUSCC,2);
end;
procedure Doit;
begin
q;
end;
begin
Doit;
end;
begin
Debug := true;
Outer;
end.
------------------------------------------------------------------------------------
Thanks for fast reply !
Maurice
--
Maurice Lombardi
Laboratoire de Spectrometrie Physique,
Universite Joseph Fourier de Grenoble, BP87
38402 Saint Martin d'Heres Cedex FRANCE
Tel: 33 (0)4 76 51 47 51
Fax: 33 (0)4 76 51 45 44
mailto:Maurice.Lombardi@ujf-grenoble.fr
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bug when upgrading bnu210->bnu211 ?
2001-06-25 2:11 ` Maurice Lombardi
@ 2001-06-25 10:52 ` Mark E.
2001-07-04 7:09 ` Maurice Lombardi
0 siblings, 1 reply; 6+ messages in thread
From: Mark E. @ 2001-06-25 10:52 UTC (permalink / raw)
To: Maurice Lombardi, djgpp, binutils
On Mon, 25 Jun 2001 11:10:32 +0200, you wrote:
>Here it is, compiled with
>gpc -g -S -O3 fay.pas
>
I get the same error message using 2.11, but none in the patched version of 2.11.2.
It would seem the fix I applied for a different bug reported a few days ago fixes
your case as well. The fix will be in the djgpp version of binutils 2.11.2 available
in a few days from the djgpp mirrors and I'll work on getting it in to a future
version of binutils.
Mark
--
Mark E.: snowball3@bigfoot.com
http://snowball.frogspace.net/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bug when upgrading bnu210->bnu211 ?
2001-06-25 10:52 ` Mark E.
@ 2001-07-04 7:09 ` Maurice Lombardi
2002-02-01 4:28 ` levi
0 siblings, 1 reply; 6+ messages in thread
From: Maurice Lombardi @ 2001-07-04 7:09 UTC (permalink / raw)
To: Mark E., gpc; +Cc: djgpp, binutils
Mark E. wrote:
> On Mon, 25 Jun 2001 11:10:32 +0200, you wrote:
>
>
>> Here it is, compiled with
>> gpc -g -S -O3 fay.pas
>>
>
>
> I get the same error message using 2.11, but none in the patched version of 2.11.2.
> It would seem the fix I applied for a different bug reported a few days ago fixes
> your case as well. The fix will be in the djgpp version of binutils 2.11.2 available
> in a few days from the djgpp mirrors and I'll work on getting it in to a future
> version of binutils.
OK It works now with bnu2112a/b.zip
Many thanks !
Maurice
--
Maurice Lombardi
Laboratoire de Spectrometrie Physique,
Universite Joseph Fourier de Grenoble, BP87
38402 Saint Martin d'Heres Cedex FRANCE
Tel: 33 (0)4 76 51 47 51
Fax: 33 (0)4 76 51 45 44
mailto:Maurice.Lombardi@ujf-grenoble.fr
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bug when upgrading bnu210->bnu211 ?
2001-07-04 7:09 ` Maurice Lombardi
@ 2002-02-01 4:28 ` levi
0 siblings, 0 replies; 6+ messages in thread
From: levi @ 2002-02-01 4:28 UTC (permalink / raw)
To: levi; +Cc: djgpp, binutils
Mark E. wrote:
> On Mon, 25 Jun 2001 11:10:32 +0200, you wrote:
>
>
>> Here it is, compiled with
>> gpc -g -S -O3 fay.pas
>>
>
>
> I get the same error message using 2.11, but none in the patched version of 2.11.2.
> It would seem the fix I applied for a different bug reported a few days ago fixes
> your case as well. The fix will be in the djgpp version of binutils 2.11.2 available
> in a few days from the djgpp mirrors and I'll work on getting it in to a future
> version of binutils.
OK It works now with bnu2112a/b.zip
Many thanks !
Maurice
--
Maurice Lombardi
Laboratoire de Spectrometrie Physique,
Universite Joseph Fourier de Grenoble, BP87
38402 Saint Martin d'Heres Cedex FRANCE
Tel: 33 (0)4 76 51 47 51
Fax: 33 (0)4 76 51 45 44
mailto:Maurice.Lombardi@ujf-grenoble.fr
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-02-01 12:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-23 10:43 bug when upgrading bnu210->bnu211 ? Maurice Lombardi
2001-06-23 21:55 ` Mark E.
2001-06-25 2:11 ` Maurice Lombardi
2001-06-25 10:52 ` Mark E.
2001-07-04 7:09 ` Maurice Lombardi
2002-02-01 4:28 ` levi
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).