compiler bug
CBFalconer
cbfalconer at yahoo.com
Fri Oct 12 00:59:51 CEST 2001
"J. David Bryan" wrote:
>
> On 11 Oct 2001, at 14:17, CBFalconer wrote:
>
> > PascalP is fairly stringent.
>
> To which Pascal standard? There are several.
ISO level 0. I thrashed it with the validation suite almost 20
years ago. Now I no longer have the suite, and can't seem to get
it without heavy fees. It has failings about procedures as
parameters and gotos out of procedures (not implemented).
>
> > My question is: why does GPC fail to pick up these errors?
>
> Because it's not an error in "GNU Pascal," which is what GPC compiles by
> default.
>
> > Do I have to do some configuration to get it conformant?
>
> Try "gpc -c --standard-pascal test.pas" for conformance with ISO-7185.
>
> See:
>
> http://agnes.dida.physik.uni-essen.de/~gnu-pascal/gpc_101.html#SEC101
>
> for additional "conformance" options.
Will do, when on line later.
Tried that command, with the following (after the string
declaration changes I posted before)
[1] c:\dnld\scratch>gpc -c --standard-pascal test.p
test.p: In procedure `Setit':
test.p:14: warning: ISO Pascal requires `packed' for fixed strings
test.p:14: warning: ISO Pascal requires `packed' for fixed strings
test.p: In main program:
test.p:23: type mismatch in argument 1 of `Setit'
test.p:25: warning: ISO Pascal requires `packed' for fixed strings
test.p:29: warning: ISO Pascal requires `packed' for fixed strings
while the equivalent PascalP (lines edited for email wrap)
[1] c:\dnld\scratch>pascalp test.p
PASCALP (pasctext, pasclist, prr, ef, output) [parm] V 3.1.9T
17000 0:d var
**** ^17
17. Error in declaration part
23000 60: 1 SetIt(ThisRec.LetterName[ThisLetter],
**** ^68 ^109,68
68. Illegal parameter substitution
109. Attempt to load the address of an expression
27000 169: 1 ThisRec.LetterName[ThisLetter]:=Chr(Ord(...
**** ^55
55. Operand type conflict
NO. ERRORS=5 WARNINGS=0 Program size(pcode bytes)=249
I want to configure it (new at this package) so it picks up all
non-standard stuff by default. I don't want Extended Pascal nor
Object Pascal compliance, and certainly not Borland (unless I tell
it so explicitly). I did something in rhide, but it doesn't seem
to stick, nor does it carry over to command line use. Level 1
compliance is fine.
Does it read an environment variable for defaults, perchance?
Just the fact that this thread ever started is worrysome. I could
see it in C, but Pascal is supposed to prevent such things.
--
Chuck F (cbfalconer at yahoo.com) (cbfalconer at XXXXworldnet.att.net)
(Remove "XXXX" from reply address. yahoo works unmodified)
mailto:uce at ftc.gov (for spambots to harvest)
More information about the Gpc
mailing list