mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 01:29:19 +02:00
* procvar is not compared in addrn
This commit is contained in:
parent
4290586968
commit
18b1a27d2c
@ -378,10 +378,14 @@ implementation
|
|||||||
begin
|
begin
|
||||||
if Tprocsym(symtableentry).procdef_count>1 then
|
if Tprocsym(symtableentry).procdef_count>1 then
|
||||||
CGMessage(parser_e_no_overloaded_procvars);
|
CGMessage(parser_e_no_overloaded_procvars);
|
||||||
resulttype.setdef(tprocsym(symtableentry).first_procdef);
|
procdef:=tprocsym(symtableentry).first_procdef;
|
||||||
end
|
end;
|
||||||
|
|
||||||
|
{ Delphi returns Pointer as type }
|
||||||
|
if not(m_tp_procvar in aktmodeswitches) then
|
||||||
|
resulttype.setdef(procdef)
|
||||||
else
|
else
|
||||||
resulttype.setdef(procdef);
|
resulttype:=voidpointertype;
|
||||||
|
|
||||||
{ process methodpointer }
|
{ process methodpointer }
|
||||||
if assigned(left) then
|
if assigned(left) then
|
||||||
@ -474,6 +478,7 @@ implementation
|
|||||||
{ method pointer ? }
|
{ method pointer ? }
|
||||||
if assigned(left) then
|
if assigned(left) then
|
||||||
begin
|
begin
|
||||||
|
expectloc:=LOC_CREFERENCE;
|
||||||
firstpass(left);
|
firstpass(left);
|
||||||
registers32:=max(registers32,left.registers32);
|
registers32:=max(registers32,left.registers32);
|
||||||
registersfpu:=max(registersfpu,left.registersfpu);
|
registersfpu:=max(registersfpu,left.registersfpu);
|
||||||
@ -1259,7 +1264,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.84 2003-04-22 23:50:23 peter
|
Revision 1.85 2003-04-23 10:10:54 peter
|
||||||
|
* procvar is not compared in addrn
|
||||||
|
|
||||||
|
Revision 1.84 2003/04/22 23:50:23 peter
|
||||||
* firstpass uses expectloc
|
* firstpass uses expectloc
|
||||||
* checks if there are differences between the expectloc and
|
* checks if there are differences between the expectloc and
|
||||||
location.loc from secondpass in EXTDEBUG
|
location.loc from secondpass in EXTDEBUG
|
||||||
|
@ -401,10 +401,18 @@ implementation
|
|||||||
if not(m_tp_procvar in aktmodeswitches) then
|
if not(m_tp_procvar in aktmodeswitches) then
|
||||||
begin
|
begin
|
||||||
if assigned(getprocvardef) then
|
if assigned(getprocvardef) then
|
||||||
hp3:=getprocvardef
|
begin
|
||||||
|
hp3:=tprocsym(tloadnode(left).symtableentry).search_procdef_byprocvardef(getprocvardef);
|
||||||
|
if not assigned(hp3) then
|
||||||
|
begin
|
||||||
|
CGMessage2(type_e_incompatible_types,tprocsym(tloadnode(left).symtableentry).first_procdef.typename,getprocvardef.typename);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
end
|
||||||
else
|
else
|
||||||
hp3:=tabstractprocdef(tprocsym(tloadnode(left).symtableentry).first_procdef);
|
hp3:=tabstractprocdef(tprocsym(tloadnode(left).symtableentry).first_procdef);
|
||||||
|
|
||||||
|
|
||||||
{ create procvardef }
|
{ create procvardef }
|
||||||
resulttype.setdef(tprocvardef.create);
|
resulttype.setdef(tprocvardef.create);
|
||||||
tprocvardef(resulttype.def).proctypeoption:=hp3.proctypeoption;
|
tprocvardef(resulttype.def).proctypeoption:=hp3.proctypeoption;
|
||||||
@ -1052,7 +1060,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.48 2003-04-22 23:50:23 peter
|
Revision 1.49 2003-04-23 10:10:54 peter
|
||||||
|
* procvar is not compared in addrn
|
||||||
|
|
||||||
|
Revision 1.48 2003/04/22 23:50:23 peter
|
||||||
* firstpass uses expectloc
|
* firstpass uses expectloc
|
||||||
* checks if there are differences between the expectloc and
|
* checks if there are differences between the expectloc and
|
||||||
location.loc from secondpass in EXTDEBUG
|
location.loc from secondpass in EXTDEBUG
|
||||||
|
Loading…
Reference in New Issue
Block a user