mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 20:50:39 +02:00
* disable reg. vars in subroutines with interprocedural used labels
git-svn-id: trunk@15713 -
This commit is contained in:
parent
ad23569cf1
commit
bacd6fb71b
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user