mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 00:49:09 +02:00
* bug0147 fixed
This commit is contained in:
parent
5b50aa04b7
commit
b47f848f8d
@ -405,43 +405,43 @@ unit ptconst;
|
|||||||
getsym(pattern,true);
|
getsym(pattern,true);
|
||||||
consume(ID);
|
consume(ID);
|
||||||
if srsym^.typ=unitsym then
|
if srsym^.typ=unitsym then
|
||||||
begin
|
begin
|
||||||
consume(POINT);
|
consume(POINT);
|
||||||
getsymonlyin(punitsym(srsym)^.unitsymtable,pattern);
|
getsymonlyin(punitsym(srsym)^.unitsymtable,pattern);
|
||||||
consume(ID);
|
consume(ID);
|
||||||
end;
|
end;
|
||||||
if srsym^.typ<>procsym then
|
if srsym^.typ<>procsym then
|
||||||
Message(cg_e_illegal_expression)
|
Message(cg_e_illegal_expression)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
pd:=pprocsym(srsym)^.definition;
|
pd:=pprocsym(srsym)^.definition;
|
||||||
if assigned(pd^.nextoverloaded) then
|
if assigned(pd^.nextoverloaded) then
|
||||||
Message(parser_e_no_overloaded_procvars);
|
Message(parser_e_no_overloaded_procvars);
|
||||||
if not((pprocvardef(def)^.options=pd^.options)) or
|
if not((pprocvardef(def)^.options=pd^.options)) or
|
||||||
not(is_equal(pprocvardef(def)^.retdef,pd^.retdef)) then
|
not(is_equal(pprocvardef(def)^.retdef,pd^.retdef)) then
|
||||||
Message(sym_e_type_mismatch)
|
Message(sym_e_type_mismatch)
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
hp1:=pprocvardef(def)^.para1;
|
hp1:=pprocvardef(def)^.para1;
|
||||||
hp2:=pd^.para1;
|
hp2:=pd^.para1;
|
||||||
while assigned(hp1) and assigned(hp2) do
|
while assigned(hp1) and assigned(hp2) do
|
||||||
begin
|
begin
|
||||||
if not(is_equal(hp1^.data,hp2^.data)) or
|
if not(is_equal(hp1^.data,hp2^.data)) or
|
||||||
not(hp1^.paratyp=hp2^.paratyp) then
|
not(hp1^.paratyp=hp2^.paratyp) then
|
||||||
begin
|
begin
|
||||||
Message(sym_e_type_mismatch);
|
Message(sym_e_type_mismatch);
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
hp1:=hp1^.next;
|
hp1:=hp1^.next;
|
||||||
hp2:=hp2^.next;
|
hp2:=hp2^.next;
|
||||||
end;
|
end;
|
||||||
if not((hp1=nil) and (hp2=nil)) then
|
if not((hp1=nil) and (hp2=nil)) then
|
||||||
Message(sym_e_type_mismatch);
|
Message(sym_e_type_mismatch);
|
||||||
end;
|
end;
|
||||||
datasegment^.concat(new(pai_const,init_symbol(strpnew(pd^.mangledname))));
|
datasegment^.concat(new(pai_const,init_symbol(strpnew(pd^.mangledname))));
|
||||||
if pd^.owner^.symtabletype=unitsymtable then
|
if pd^.owner^.symtabletype=unitsymtable then
|
||||||
concat_external(pd^.mangledname,EXT_NEAR);
|
concat_external(pd^.mangledname,EXT_NEAR);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{ reads a typed constant record }
|
{ reads a typed constant record }
|
||||||
recorddef:
|
recorddef:
|
||||||
@ -492,7 +492,10 @@ unit ptconst;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 1998-07-20 22:17:16 florian
|
Revision 1.10 1998-07-21 11:16:25 florian
|
||||||
|
* bug0147 fixed
|
||||||
|
|
||||||
|
Revision 1.9 1998/07/20 22:17:16 florian
|
||||||
* hex constants in numeric char (#$54#$43 ...) are now allowed
|
* hex constants in numeric char (#$54#$43 ...) are now allowed
|
||||||
* there was a bug in record_var_dec which prevents the used
|
* there was a bug in record_var_dec which prevents the used
|
||||||
of nested variant records (for example drivers.tevent of tv)
|
of nested variant records (for example drivers.tevent of tv)
|
||||||
|
Loading…
Reference in New Issue
Block a user