* disable reg. vars in subroutines with interprocedural used labels

git-svn-id: trunk@15713 -
This commit is contained in:
florian 2010-08-05 20:23:48 +00:00
parent ad23569cf1
commit bacd6fb71b
3 changed files with 7 additions and 1 deletions

View File

@ -426,7 +426,9 @@ interface
{ set if the procedure has at least one register saved on the stack }
pi_has_saved_regs,
{ dfa was generated for this proc }
pi_dfaavailable
pi_dfaavailable,
{ subroutine contains interprocedural used labels }
pi_has_interproclabel
);
tprocinfoflags=set of tprocinfoflag;

View File

@ -1830,6 +1830,9 @@ implementation
include(current_procinfo.flags,pi_has_label);
if labsym.nonlocal then
include(current_procinfo.flags,pi_has_interproclabel);
if assigned(left) then
firstpass(left);
if (m_iso in current_settings.modeswitches) and

View File

@ -1058,6 +1058,7 @@ implementation
result:=(cs_opt_regvar in current_settings.optimizerswitches) and
not(pi_has_assembler_block in current_procinfo.flags) and
not(pi_uses_exceptions in current_procinfo.flags) and
not(pi_has_interproclabel in current_procinfo.flags) and
not(vo_has_local_copy in varoptions) and
((refpara and
(varregable <> vr_none)) or