public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* 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).