------- Comment #7 from mckinlay at redhat dot com 2005-11-21 22:02 ------- > Except that under Bryce's GCJ, the function terminates successfully > even if you throw in System.out.println's into it, thus tainting its > "purity".
No, when I add a System.out.println("hi"), and compile with a trunk gcj, the example behaves as expected - "hi" is printed many times until a stack overflow eventually occurs, resulting in a segfault. Removing the try/finally, the example runs forever thanks to tail-call optimization. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24980