* methodpointer fixes

This commit is contained in:
peter 2003-08-26 12:43:02 +00:00
parent d5a6a5b7f9
commit 15958fec9f
2 changed files with 19 additions and 5 deletions

View File

@ -490,9 +490,16 @@ implementation
result := tcgsize(ord(result)+(ord(OS_S8)-ord(OS_8)));
end;
classrefdef,
pointerdef,
procvardef:
pointerdef:
result := OS_ADDR;
procvardef:
begin
if tprocvardef(def).is_methodpointer and
(not tprocvardef(def).is_addressonly) then
result := OS_64
else
result := OS_ADDR;
end;
stringdef :
begin
if is_ansistring(def) or is_widestring(def) then
@ -574,7 +581,10 @@ implementation
end.
{
$Log$
Revision 1.59 2003-08-20 17:48:49 peter
Revision 1.60 2003-08-26 12:43:02 peter
* methodpointer fixes
Revision 1.59 2003/08/20 17:48:49 peter
* fixed stackalloc to not allocate localst.datasize twice
* order of stackalloc code fixed for implicit init/final

View File

@ -302,7 +302,8 @@ interface
begin
{ method pointer ? }
if assigned(tunarynode(left).left) then
if tabstractprocdef(left.resulttype.def).is_methodpointer and
not(tabstractprocdef(left.resulttype.def).is_addressonly) then
begin
location_copy(location,left.location);
end
@ -510,7 +511,10 @@ end.
{
$Log$
Revision 1.44 2003-06-03 21:11:09 peter
Revision 1.45 2003-08-26 12:43:02 peter
* methodpointer fixes
Revision 1.44 2003/06/03 21:11:09 peter
* cg.a_load_* get a from and to size specifier
* makeregsize only accepts newregister
* i386 uses generic tcgnotnode,tcgunaryminus