* fix for bug0182

This commit is contained in:
pierre 1998-11-23 18:26:44 +00:00
parent 83a1c209c5
commit c921c95996

View File

@ -201,12 +201,28 @@ unit ptconst;
else
if p^.treetype=addrn then
begin
hp:=p^.left;
while assigned(hp) and (hp^.treetype=subscriptn) do
hp:=hp^.left;
if (is_equal(ppointerdef(p^.resulttype)^.definition,ppointerdef(def)^.definition) or
(is_equal(ppointerdef(p^.resulttype)^.definition,voiddef)) or
(is_equal(ppointerdef(def)^.definition,voiddef))) and
(p^.left^.treetype = loadn) then
(hp^.treetype = loadn) then
begin
if token=POINT then
firstpass(p^.left);
hp:=p^.left;
offset:=0;
while assigned(hp) and (hp^.treetype<>loadn) do
begin
if hp^.treetype=subscriptn then
inc(offset,hp^.vs^.address)
else
Message(cg_e_illegal_expression);
hp:=hp^.left;
end;
datasegment^.concat(new(pai_const_symbol_offset,init(
strpnew(hp^.symtableentry^.mangledname),offset)));
(*if token=POINT then
begin
offset:=0;
while token=POINT do
@ -229,9 +245,9 @@ unit ptconst;
begin
datasegment^.concat(new(pai_const,init_symbol(
strpnew(p^.left^.symtableentry^.mangledname))));
end;
maybe_concat_external(p^.left^.symtableentry^.owner,
p^.left^.symtableentry^.mangledname);
end; *)
maybe_concat_external(hp^.symtableentry^.owner,
hp^.symtableentry^.mangledname);
end
else
Message(cg_e_illegal_expression);
@ -631,7 +647,10 @@ unit ptconst;
end.
{
$Log$
Revision 1.28 1998-11-17 10:40:16 peter
Revision 1.29 1998-11-23 18:26:44 pierre
* fix for bug0182
Revision 1.28 1998/11/17 10:40:16 peter
* H+ fixes
Revision 1.27 1998/11/16 12:12:23 peter