diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2016-06-26 07:51:22 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2016-06-26 07:51:22 (GMT) |
commit | 2b756b48f0fcb3c5117930e9ad1be22561d9728b (patch) | |
tree | 18e0110c3a4f6b3589872553b3e0db9a7209d300 /tests/assemble.test | |
parent | 8211d5bc63a57a3d51b8f6c605a9e4e4a992a6ec (diff) | |
parent | 94c255833358445b9edae73af1ffbe1cc2c8ab42 (diff) | |
download | tcl-drh_micro_optimization.zip tcl-drh_micro_optimization.tar.gz tcl-drh_micro_optimization.tar.bz2 |
Merge trunkdrh_micro_optimization
Diffstat (limited to 'tests/assemble.test')
-rw-r--r-- | tests/assemble.test | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/tests/assemble.test b/tests/assemble.test index 5c226cd..d17bfd9 100644 --- a/tests/assemble.test +++ b/tests/assemble.test @@ -3279,6 +3279,92 @@ test assemble-51.4 {memory leak testing} memory { } } } 0 + +test assemble-52.1 {Bug 3154ea2759} { + apply {{} { + # Needs six exception ranges to force the range allocations to use the + # malloced store. + ::tcl::unsupported::assemble { + beginCatch @badLabel + push error + push testing + invokeStk 2 + pop + push 0 + jump @okLabel + label @badLabel + push 1; # should be pushReturnCode + label @okLabel + endCatch + pop + + beginCatch @badLabel2 + push error + push testing + invokeStk 2 + pop + push 0 + jump @okLabel2 + label @badLabel2 + push 1; # should be pushReturnCode + label @okLabel2 + endCatch + pop + + beginCatch @badLabel3 + push error + push testing + invokeStk 2 + pop + push 0 + jump @okLabel3 + label @badLabel3 + push 1; # should be pushReturnCode + label @okLabel3 + endCatch + pop + + beginCatch @badLabel4 + push error + push testing + invokeStk 2 + pop + push 0 + jump @okLabel4 + label @badLabel4 + push 1; # should be pushReturnCode + label @okLabel4 + endCatch + pop + + beginCatch @badLabel5 + push error + push testing + invokeStk 2 + pop + push 0 + jump @okLabel5 + label @badLabel5 + push 1; # should be pushReturnCode + label @okLabel5 + endCatch + pop + + beginCatch @badLabel6 + push error + push testing + invokeStk 2 + pop + push 0 + jump @okLabel6 + label @badLabel6 + push 1; # should be pushReturnCode + label @okLabel6 + endCatch + pop + } + }} +} {}; # must not crash rename fillTables {} rename assemble {} |