* variables where the address is taken could have aliases so they aren't invariant

git-svn-id: trunk@11806 -
This commit is contained in:
florian 2008-09-18 19:08:57 +00:00
parent 0b5951fa14
commit 17d3da7266

View File

@ -200,7 +200,10 @@ unit optloop;
if (pi_dfaavailable in current_procinfo.flags) and
assigned(loop.optinfo) and
assigned(expr.optinfo) then
result:=not(DFASetIn(loop.optinfo^.defsum,expr.optinfo^.index));
{ no aliasing? }
result:=not(tabstractvarsym(tloadnode(expr).symtableentry).addr_taken) and
{ no definition in the loop? }
not(DFASetIn(loop.optinfo^.defsum,expr.optinfo^.index));
end;
end;
end;