Ticket UUID: | 542142 | |||
Title: | Bug in bcc'ed [return] | |||
Type: | Bug | Version: | None | |
Submitter: | msofer | Created on: | 2002-04-10 19:29:33 | |
Subsystem: | 47. Bytecode Compiler | Assigned To: | msofer | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2002-08-14 03:35:30 | |
Resolution: | Fixed | Closed By: | msofer | |
Closed on: | 2002-08-13 20:35:30 | |||
Description: |
Andreas Kupries reports: I believe that I have found a bug in the bytecode compiler. Below a minimal example of the difference between 8.3.4 and 8.4 CVS head of last friday (April 5). What happens is that the "return" in the catch is not catched but stops execution of the surounding procedure. [andreask@pliers pro_ng]$ cat catch_test # -*- tcl -*- proc foo {} { set fail [catch { return }] ; # {} return 2 } puts "foo = [foo]" [andreask@pliers pro_ng]$ [andreask@pliers pro_ng]$ ./install/834/bin/tclsh8.3 catch_test foo = 2 [andreask@pliers pro_ng]$ [andreask@pliers pro_ng]$ [andreask@pliers pro_ng]$ ./install/84cvs/bin/tclsh8.4 catch_test foo = | |||
User Comments: |
msofer added on 2002-04-16 00:34:00:
Logged In: YES user_id=148712 Patch committed: bytecodes now check for a possible [catch] before returning. Before this, the bytecompiled [return] was uncatchable. msofer added on 2002-04-11 03:12:32: File Added - 20934: bcCatch.patch Logged In: YES user_id=148712 The patch attached solves the issue. |
Attachments:
- bcCatch.patch [download] added by msofer on 2002-04-11 03:12:32. [details]