mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 09:29:26 +02:00
procedure var bug
This commit is contained in:
parent
02a46a6547
commit
d7fc885b57
42
bugs/bug0194.pp
Normal file
42
bugs/bug0194.pp
Normal 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.
|
@ -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 !!
|
||||||
|
Loading…
Reference in New Issue
Block a user