--assembler-debug=2 or more ought to give it to you. This is what I get after peephole optimization:
=== 1 0 byte(3) === 1 1 byte(3) === 1 2 entry === 1 2 function start === 1 2 label(4) === 1 11 catch(5) === 1 1e catch(7) === 1 27 escape catch === 1 2c escape catch === 1 31 branch(2) === 1 36 label(7) === 1 45 pop === 1 4a throw(0) === 1 4f label(5) === 1 5e pop === 1 63 catch(5) === 1 6c catch(7) === 1 75 escape catch === 1 7a escape catch === 1 7f label(2) === 1 8e return 0
I can't say I understand why the body is repeated twice. It only happens if the for statement lacks the repeat condition.
/ Martin Stjernholm, Roxen IS
Previous text:
2002-09-22 23:15: Subject: catch { catch { break foo; }; };
The following invocation
pike -e 'foo: for(;;) { catch { catch { break foo; }; }; }'
makes Pike bomb out on POWER with machine code optimizations. The stack is a little too messed up for me to figure out where it went wrong just from the post mortem though. What sequence of bytecodes will be generated by this code?
/ Marcus Comstedt (ACROSS) (Hail Ilpalazzo!)