diff --git a/compiler/optcse.pas b/compiler/optcse.pas index 1aff48ba70..304c1047bd 100644 --- a/compiler/optcse.pas +++ b/compiler/optcse.pas @@ -178,10 +178,10 @@ unit optcse; load nodes are not considered if they load para or local symbols from the current stack frame, those are in registers anyways if possible } - (not(n.nodetype=loadn) or - not(tloadnode(n).symtableentry.typ in [paravarsym,localvarsym,staticvarsym]) or + (not(actualtargetnode(@n)^.nodetype=loadn) or + not(tloadnode(actualtargetnode(@n)^).symtableentry.typ in [paravarsym,localvarsym,staticvarsym]) or { apply cse on non-regable static variables } - ((tloadnode(n).symtableentry.typ=staticvarsym) and (tstaticvarsym(tloadnode(n).symtableentry).varregable=vr_none)) or + ((tloadnode(actualtargetnode(@n)^).symtableentry.typ=staticvarsym) and (tstaticvarsym(tloadnode(actualtargetnode(@n)^).symtableentry).varregable=vr_none)) or (node_complexity(n)>1) ) and