Browse Source

* don't crash when inserting the parentfp parameter for "is nested" procvar
declarations on systems_fpnestedstruct platforms

git-svn-id: trunk@32593 -

Jonas Maebe 9 years ago
parent
commit
d16d2e6e3c
1 changed files with 3 additions and 1 deletions
  1. 3 1
      compiler/pparautl.pas

+ 3 - 1
compiler/pparautl.pas

@@ -115,7 +115,9 @@ implementation
             { Generate frame pointer. It can't be put in a register since it
             { Generate frame pointer. It can't be put in a register since it
               must be accessable from nested routines }
               must be accessable from nested routines }
             if not(target_info.system in systems_fpnestedstruct) or
             if not(target_info.system in systems_fpnestedstruct) or
-               { in case of errors, prevent invalid type cast }
+               { in case of errors or declared procvardef types, prevent invalid
+                 type cast and possible nil pointer dereference }
+               not assigned(pd.owner.defowner) or
                (pd.owner.defowner.typ<>procdef) then
                (pd.owner.defowner.typ<>procdef) then
               begin
               begin
                 vs:=cparavarsym.create('$parentfp',paranr,vs_value
                 vs:=cparavarsym.create('$parentfp',paranr,vs_value