Branch: Tag:

2001-06-23

2001-06-23 10:33:11 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

avoid generating tail recursion inside catch()

Rev: src/docode.c:1.121
Rev: src/interpret.c:1.208
Rev: src/opcodes.h:1.17
Rev: src/peep.c:1.47
Rev: src/peep.in:1.53
Rev: src/testsuite.in:1.427

1: - test_true([["$Id: testsuite.in,v 1.426 2001/06/20 16:05:52 grubba Exp $"]]); + test_true([["$Id: testsuite.in,v 1.427 2001/06/23 10:33:11 hubbe Exp $"]]);      cond([[all_constants()->_verify_internals]],   [[
716:   test_any([[ int a,b; catch { [a,b]=({1}); }; return 1]],1)   test_any([[ mapping m=([]); m[m]=m; return stringp(sprintf("%O",m)); ]],1)    + test_any([[ +  int q() { throw(1); }; +  catch { +  return q(); +  }; +  return 17; + ]],17) +  + test_any([[ +  return class +  { +  int q() { throw(1); }; +  int p() { +  catch { +  return q(); +  }; +  return 17; +  } +  }()->p(); + ]],17) +    test_compile_error([[    static function foo(string ...:object);    int bar()