Previous mail
Next mail
Unformatted/full headers
Overview 10 days
Subject
Date
Thread
Author
From: John Gordon Ollason
Subject: Compiler differences
Date: 11 Dec 2009, 14:06:28
Greetings,
Having installed gpc 20060325, based on gcc-3.4.4 in replacement of gpc
20041218, based on gcc-3.3.3 I discovered that some programs which worked
on the earlier version don't work on the later one. I narrowed the problem
down to changes in the behaviour of goto.
program gototest;
label 9999;
procedure try;
begin
goto 9999;
end; { try }
begin
try;
9999:
end.
The program gototest.p is compiled by both compilers. The following
program gototest1;
label 9999;
procedure try;
begin
goto 9999;
end; { try }
begin
repeat
try;
9999:
until 0=0;
end.
is compiled by gpc 20041218 but the newer compiler gives the following
error:
gpc --classic-pascal gototest.p
gototest.p: In main program:
gototest.p:10: error: invalid target for nonlocal `goto'
I have had a look at the ISO7185 specification, and though I am not an
expert in these matters, it seems to me that the newer compiler is
behaving incorrectly.
Incidentally FreePascal gives the following error for both programs:
Free Pascal Compiler version 2.2.2 [2008/10/26] for x86_64
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling gototest.p
gototest.p(5,13) Error: Goto statements aren't allowed between different
procedures
gototest.p(14) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not
specify a source file to be compiled)
Are any of the compilers behaving as specified in the ISO7815 standard?
Best wishes,
John O.
Previous mail
Next mail
Unformatted/full headers
Overview 10 days
Subject
Date
Thread
Author
| Author | Subject | Date |
|---|---|---|
| Frank Heckenbach | Compiler differences | 11 Dec 2009, 15:24:15 |
| John Gordon Ollason | Compiler differences | 11 Dec 2009, 17:45:57 |
Note: This page contains information that does not originate from the owner of this web site, but from the authors of the mails archived. The owner of this web site is not responsible for the content of such information. Any use of that infomation requires the consent of the respective author.
Where WWW addresses (URLs) in the mails archived are marked as hyperlinks, this is only for the comfort of the reader. The content of the web pages linked to like this does not necessarily reflect the opinion of the owner of this web site or of the authors of the mails archived. The owner of this web site is not responsible for the content of such web pages. Those pages are explicitly not to be considered as part of the content of this page, but merely as references.
This page was created by Crystal 0.999 (Linux 2.4.27/i686).