From 898fbdcd264490213618c5c906ea61d3aa7875ad Mon Sep 17 00:00:00 2001 From: sergei Date: Sat, 14 Jan 2012 04:34:39 +0000 Subject: [PATCH] * Disallow placing hidden 'high' parameter in register if it will be accessed from implicit finally block (happens for parameters). git-svn-id: trunk@20072 - --- compiler/pdecsub.pas | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/pdecsub.pas b/compiler/pdecsub.pas index 44c345cdb1..b73c4b3a3a 100644 --- a/compiler/pdecsub.pas +++ b/compiler/pdecsub.pas @@ -409,6 +409,11 @@ implementation hvs:=tparavarsym.create('$high'+name,paranr+1,vs_const,sinttype,[vo_is_high_para,vo_is_hidden_para]); hvs.symoptions:=[]; owner.insert(hvs); + { don't place to register if it will be accessed from implicit finally block } + if (varspez=vs_value) and + is_open_array(vardef) and + is_managed_type(vardef) then + hvs.varregable:=vr_none; end else begin