summaryrefslogtreecommitdiffstats
path: root/generic/tclCompile.h
diff options
context:
space:
mode:
authormig <mig>2013-12-20 21:59:28 (GMT)
committermig <mig>2013-12-20 21:59:28 (GMT)
commitdb7ebfac4369ff2b956e1f5d7a8865e88d4ffc50 (patch)
tree369c1986c44ad9e1aca2cebf078fb10f90fc3b31 /generic/tclCompile.h
parent40ee4723305e14d61c083785f230b614b2829361 (diff)
downloadtcl-db7ebfac4369ff2b956e1f5d7a8865e88d4ffc50.zip
tcl-db7ebfac4369ff2b956e1f5d7a8865e88d4ffc50.tar.gz
tcl-db7ebfac4369ff2b956e1f5d7a8865e88d4ffc50.tar.bz2
remove INST_TRY_CVT_TO_NUMERIC when it is known not be necessary (cherrypick from mig-optimize)
Diffstat (limited to 'generic/tclCompile.h')
-rw-r--r--generic/tclCompile.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/generic/tclCompile.h b/generic/tclCompile.h
index b421aaf..287ab1d 100644
--- a/generic/tclCompile.h
+++ b/generic/tclCompile.h
@@ -1309,6 +1309,18 @@ MODULE_SCOPE Tcl_Obj *TclNewInstNameObj(unsigned char inst);
} while (0)
/*
+ * If the expr compiler finished with TRY_CONVERT, macro to remove it when the
+ * job is done by the following instruction.
+ */
+
+#define TclClearNumConversion(envPtr) \
+ do { \
+ if (*(envPtr->codeNext - 1) == INST_TRY_CVT_TO_NUMERIC) { \
+ envPtr->codeNext--; \
+ } \
+ } while (0)
+
+/*
* Macros to update a (signed or unsigned) integer starting at a pointer. The
* two variants depend on the number of bytes. The ANSI C "prototypes" for
* these macros are: