Jelajahi Sumber

* don't do tail recursion optimization on types requiring init/final code

git-svn-id: trunk@6031 -
florian 18 tahun lalu
induk
melakukan
42cf5f7b2b
1 mengubah file dengan 6 tambahan dan 1 penghapusan
  1. 6 1
      compiler/opttail.pas

+ 6 - 1
compiler/opttail.pas

@@ -186,7 +186,12 @@ unit opttail;
           with tparavarsym(p.paras[i]) do
             if (varspez in [vs_out,vs_var]) or
               ((varspez=vs_const) and
-               (paramanager.push_addr_param(varspez,vardef,p.proccalloption))) then
+               (paramanager.push_addr_param(varspez,vardef,p.proccalloption)) or
+               { parameters requiring tables are too complicated to handle
+                 and slow down things anyways so a tail recursion call
+                 makes no sense
+               }
+               vardef.needs_inittable) then
                exit;
 
         labelnode:=clabelnode.create(cnothingnode.create);