aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2020-04-16 13:09:38 +1000
committerSteve Bennett <steveb@workware.net.au>2020-04-17 07:49:56 +1000
commite799d21972cc06d6758cbd0c397df37cf0de0928 (patch)
tree84a4061705f4f2e40614bba748574896b0b56ac1 /tests
parent9023bf0ac3eb73ebad8fb333c0b08a0a09332659 (diff)
downloadjimtcl-e799d21972cc06d6758cbd0c397df37cf0de0928.zip
jimtcl-e799d21972cc06d6758cbd0c397df37cf0de0928.tar.gz
jimtcl-e799d21972cc06d6758cbd0c397df37cf0de0928.tar.bz2
expr: avoid memory leak due to shimmering
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'tests')
-rw-r--r--tests/expr-new.test13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/expr-new.test b/tests/expr-new.test
index c04da05..f81c911 100644
--- a/tests/expr-new.test
+++ b/tests/expr-new.test
@@ -627,6 +627,19 @@ test expr-21.7 {checking boolean mixed case} {
}
} 1
+# This test won't fail if shimmering isn't handled
+# correctly, but it will leak memory. configure with --maintainer
+# to see the issue.
+test expr-21.1 {expr shimmering} {
+ set x {[a] + 2}
+ proc a {} {
+ upvar x x
+ # make the expression become a list while we are executing it
+ lindex $x 2
+ }
+ expr $x
+} {4}
+
# cleanup
if {[info exists a]} {
unset a