summaryrefslogtreecommitdiff
path: root/compiler/ngtcon.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-04-16 21:25:22 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-04-16 21:25:22 +0000
commit1c8e2710fdce5968b4f13fae10a0e5020c7ba52e (patch)
tree6eaf8a688d2fce13ebfa5f87cabf77e8736d16b0 /compiler/ngtcon.pas
parente9c17313dbf4d3b9d922e03ae1ce9422dc2cec67 (diff)
downloadfpc-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.pas3
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;