* skip static fields while constructing the LLVM shadow symtable for structs

git-svn-id: trunk@33960 -
This commit is contained in:
Jonas Maebe 2016-06-12 09:21:03 +00:00
parent 22c31ca004
commit 68d9eb89a2

View File

@ -1919,7 +1919,8 @@ implementation
i:=0;
while (i<equivst.symlist.count) do
begin
if (tsym(equivst.symlist[i]).typ<>fieldvarsym) then
if (tsym(equivst.symlist[i]).typ<>fieldvarsym) or
(sp_static in tsym(equivst.symlist[i]).symoptions) then
begin
inc(i);
continue;
@ -1978,6 +1979,7 @@ implementation
inc(i);
while (i<equivst.symlist.count) and
((tsym(equivst.symlist[i]).typ<>fieldvarsym) or
(sp_static in tsym(equivst.symlist[i]).symoptions) or
(tfieldvarsym(equivst.symlist[i]).fieldoffset>sym.fieldoffset)) do
inc(i);
continue;
@ -2004,7 +2006,8 @@ implementation
lastvaroffsetprocessed:=-1;
while (i<equivcount) do
begin
if (tsym(equivst.symlist[i]).typ<>fieldvarsym) then
if (tsym(equivst.symlist[i]).typ<>fieldvarsym) or
(sp_static in tsym(equivst.symlist[i]).symoptions) then
begin
inc(i);
continue;
@ -2045,7 +2048,8 @@ implementation
i:=0;
while (i < equivcount) do
begin
if (tsym(equivst.symlist[i]).typ<>fieldvarsym) then
if (tsym(equivst.symlist[i]).typ<>fieldvarsym) or
(sp_static in tsym(equivst.symlist[i]).symoptions) then
begin
inc(i);
continue;