|
@@ -351,7 +351,6 @@ implementation
|
|
var
|
|
var
|
|
otlabel,
|
|
otlabel,
|
|
oflabel : tasmlabel;
|
|
oflabel : tasmlabel;
|
|
- hp : tnode;
|
|
|
|
begin
|
|
begin
|
|
if not(assigned(parasym)) then
|
|
if not(assigned(parasym)) then
|
|
internalerror(200304242);
|
|
internalerror(200304242);
|
|
@@ -656,17 +655,17 @@ implementation
|
|
not(vo_is_funcret in ppn.parasym.varoptions) then
|
|
not(vo_is_funcret in ppn.parasym.varoptions) then
|
|
location_freetemp(exprasmlist,ppn.left.location);
|
|
location_freetemp(exprasmlist,ppn.left.location);
|
|
{ process also all nodes of an array of const }
|
|
{ process also all nodes of an array of const }
|
|
- if ppn.left.nodetype=arrayconstructorn then
|
|
|
|
|
|
+ hp:=ppn.left;
|
|
|
|
+ while (hp.nodetype=typeconvn) do
|
|
|
|
+ hp:=ttypeconvnode(hp).left;
|
|
|
|
+ if (hp.nodetype=arrayconstructorn) and
|
|
|
|
+ assigned(tarrayconstructornode(hp).left) then
|
|
begin
|
|
begin
|
|
- if assigned(tarrayconstructornode(ppn.left).left) then
|
|
|
|
- begin
|
|
|
|
- hp:=ppn.left;
|
|
|
|
- while assigned(hp) do
|
|
|
|
- begin
|
|
|
|
- location_freetemp(exprasmlist,tarrayconstructornode(hp).left.location);
|
|
|
|
- hp:=tarrayconstructornode(hp).right;
|
|
|
|
- end;
|
|
|
|
- end;
|
|
|
|
|
|
+ while assigned(hp) do
|
|
|
|
+ begin
|
|
|
|
+ location_freetemp(exprasmlist,tarrayconstructornode(hp).left.location);
|
|
|
|
+ hp:=tarrayconstructornode(hp).right;
|
|
|
|
+ end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
ppn:=tcallparanode(ppn.right);
|
|
ppn:=tcallparanode(ppn.right);
|
|
@@ -960,8 +959,6 @@ implementation
|
|
extra code }
|
|
extra code }
|
|
if (po_interrupt in procdefinition.procoptions) then
|
|
if (po_interrupt in procdefinition.procoptions) then
|
|
extra_interrupt_code;
|
|
extra_interrupt_code;
|
|
- {$warning fixme regvars.}
|
|
|
|
-{ rg.saveotherregvars(exprasmlist,ALL_OTHERREGISTERS);}
|
|
|
|
extra_call_code;
|
|
extra_call_code;
|
|
cg.a_call_reg(exprasmlist,pvreg);
|
|
cg.a_call_reg(exprasmlist,pvreg);
|
|
end;
|
|
end;
|
|
@@ -1250,7 +1247,10 @@ begin
|
|
end.
|
|
end.
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.191 2005-01-02 16:58:48 peter
|
|
|
|
|
|
+ Revision 1.192 2005-01-04 16:36:51 peter
|
|
|
|
+ * release temps in array constructor
|
|
|
|
+
|
|
|
|
+ Revision 1.191 2005/01/02 16:58:48 peter
|
|
* Don't release methodpointer. It is maybe still needed when we need to
|
|
* Don't release methodpointer. It is maybe still needed when we need to
|
|
convert the calln to loadn
|
|
convert the calln to loadn
|
|
|
|
|