diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-04-16 21:25:22 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-04-16 21:25:22 +0000 |
commit | 1c8e2710fdce5968b4f13fae10a0e5020c7ba52e (patch) | |
tree | 6eaf8a688d2fce13ebfa5f87cabf77e8736d16b0 /compiler/ngtcon.pas | |
parent | e9c17313dbf4d3b9d922e03ae1ce9422dc2cec67 (diff) | |
download | fpc-1c8e2710fdce5968b4f13fae10a0e5020c7ba52e.tar.gz |
* fixed endless recursion in tabstractrecorddef.contains_float_field() in
case a record contains an internal typed constant of its own type
(which happened by such a typed constant is also fieldvarsym, solved
by checking for sp_static) (mantis #27880)
* fixed several other similar cases in the compiler where we are only
interested in instance fields, but processed all fieldvarsyms
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@30614 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ngtcon.pas')
-rw-r--r-- | compiler/ngtcon.pas | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/ngtcon.pas b/compiler/ngtcon.pas index e8d4e6eb8d..78551a0a02 100644 --- a/compiler/ngtcon.pas +++ b/compiler/ngtcon.pas @@ -165,7 +165,8 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis begin result:=tsym(def.symtable.SymList[symidx]); inc(symidx); - if result.typ=fieldvarsym then + if (result.typ=fieldvarsym) and + not(sp_static in result.symoptions) then exit; end; result:=nil; |