procedure var bug

This commit is contained in:
pierre 1998-12-22 09:25:09 +00:00
parent 02a46a6547
commit d7fc885b57
2 changed files with 48 additions and 4 deletions

42
bugs/bug0194.pp Normal file
View File

@ -0,0 +1,42 @@
{$Q+}
type
tproc = function : longint;
var
f : tproc;
fa : array [0..1] of tproc;
function dummy : longint;
begin
dummy:=25;
end;
const
prog_has_errors : boolean = false;
procedure Wrong(const s : string);
begin
writeln(s);
prog_has_errors:=True;
end;
Begin
f:=@dummy;
if f()<>25 then
Wrong('f() does not call dummy !!');
if pointer(@f)=pointer(@dummy) then
Wrong('@f returns value of f !');
if longint(f)=longint(@f) then
Wrong('longint(@f)=longint(f) !!!!');
if f<>@dummy then
Wrong('f does not return the address of dummy');
if longint(@f)=longint(@dummy) then
Wrong('longint(@f) returns address of dummy instead of address of f');
fa[0]:=@dummy;
if longint(@f)=longint(@fa[0]) then
Wrong('arrays of procvar also wrong');
if longint(f)<>longint(fa[0]) then
Wrong('arrays of procvar and procvars are handled differently !!');
if prog_has_errors then
Halt(1);
End.

View File

@ -68,6 +68,7 @@ Fixed bugs:
bug0049.pp shows an error while defining subrange types OK 0.99.7 (PFV) bug0049.pp shows an error while defining subrange types OK 0.99.7 (PFV)
bug0050.pp can't set a function result in a nested procedure of a function OK 0.99.7 (PM) bug0050.pp can't set a function result in a nested procedure of a function OK 0.99.7 (PM)
bug0051.pp Graph, shows a problem with putpixel OK 0.99.9 (PM) bug0051.pp Graph, shows a problem with putpixel OK 0.99.9 (PM)
bug0052.pp Graph, collects missing graph unit routines OK 0.99.9 (PM)
bug0053.pp shows a problem with open arrays OK 0.99.1 (FK) bug0053.pp shows a problem with open arrays OK 0.99.1 (FK)
(crashes a win95-DOS box :) ) (crashes a win95-DOS box :) )
bug0054.pp wordbool and longbool types are missed OK 0.99.6 (PFV) bug0054.pp wordbool and longbool types are missed OK 0.99.6 (PFV)
@ -194,7 +195,11 @@ Fixed bugs:
bug0166.pp forward type used in declaration crashes instead of error OK 0.99.9 (PFV) bug0166.pp forward type used in declaration crashes instead of error OK 0.99.9 (PFV)
bug0167.pp crash when declaring a procedure with same name as object OK 0.99.9 (PFV) bug0167.pp crash when declaring a procedure with same name as object OK 0.99.9 (PFV)
bug0168.pp set:=set+element is allowed (should be: set:=set+[element]) OK 0.99.9 (PFV) bug0168.pp set:=set+element is allowed (should be: set:=set+[element]) OK 0.99.9 (PFV)
<<<<<<< readme.txt
bug0169.pp missing new(type) support for not object/class OK 0.99.9 (PM)
=======
bug0169.pp missing new(type) support for not object/class OK 0.99.9 (PM) bug0169.pp missing new(type) support for not object/class OK 0.99.9 (PM)
>>>>>>> 1.86
bug0170.pp Asm, {$ifdef} is seen as a separator OK 0.99.9 (PFV) bug0170.pp Asm, {$ifdef} is seen as a separator OK 0.99.9 (PFV)
bug0172.pp with with absolute seg:ofs should not be possible OK 0.99.9 (PM) bug0172.pp with with absolute seg:ofs should not be possible OK 0.99.9 (PM)
bug0173.pp secondbug is parsed as asm, but should be normal pascalcode OK 0.99.9 (PFV) bug0173.pp secondbug is parsed as asm, but should be normal pascalcode OK 0.99.9 (PFV)
@ -234,10 +239,6 @@ bug0155.pp Asm, Missing string return for asm functions
Unfixed bugs: Unfixed bugs:
------------- -------------
bug0052.pp Graph, collects missing graph unit routines
(partial fix : works for this example but fillpoly is
still not really implemented 0.99.9 (PM))
bug0123.pp Asm, problem with intel assembler (shrd) bug0123.pp Asm, problem with intel assembler (shrd)
bug0124.pp Asm, problem with -Rintel switch and indexing (whatever the order) bug0124.pp Asm, problem with -Rintel switch and indexing (whatever the order)
bug0175.pp Asm, mov word,%eax should not be allowed without casting bug0175.pp Asm, mov word,%eax should not be allowed without casting
@ -257,3 +258,4 @@ bug0191.pp missing vecn constant evaluation
bug0192.pp can't compare boolean result with true/false, because the bug0192.pp can't compare boolean result with true/false, because the
boolean result is already in the flags boolean result is already in the flags
bug0193.pp overflow checking for 8 and 16 bit operations wrong bug0193.pp overflow checking for 8 and 16 bit operations wrong
bug0194.pp @procedure var returns value in it instead of address !!