summaryrefslogtreecommitdiffstats
path: root/generic/tclCompCmds.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2006-12-07 23:35:29 (GMT)
committerdgp <dgp@users.sourceforge.net>2006-12-07 23:35:29 (GMT)
commit3956ac10bc7eb76aeae3705e041bef841361d208 (patch)
tree3086eac10fe782de5811f761f5595936c615c60b /generic/tclCompCmds.c
parent00ea0049a0fcf1517652f613da6ee76288bfb1ac (diff)
downloadtcl-3956ac10bc7eb76aeae3705e041bef841361d208.zip
tcl-3956ac10bc7eb76aeae3705e041bef841361d208.tar.gz
tcl-3956ac10bc7eb76aeae3705e041bef841361d208.tar.bz2
* generic/tclCompCmds.c: Additional commits correct most
* generic/tclExecute.c: failing tests illustrating bugs uncovered * generic/tclMathOp.c: in [Path 1578137].
Diffstat (limited to 'generic/tclCompCmds.c')
-rw-r--r--generic/tclCompCmds.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index 5954394..464f7d2 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclCompCmds.c,v 1.96 2006/12/07 15:02:45 dkf Exp $
+ * RCS: @(#) $Id: tclCompCmds.c,v 1.97 2006/12/07 23:35:29 dgp Exp $
*/
#include "tclInt.h"
@@ -4658,6 +4658,13 @@ CompileAssociativeBinaryOpCmd(
PushLiteral(envPtr, identity, -1);
return TCL_OK;
}
+ if (parsePtr->numWords == 2) {
+ /*
+ * TODO: Fixup the single argument case to require
+ * numeric argument. Fallback on direct eval until fixed
+ */
+ return TCL_ERROR;
+ }
for (words=1 ; words<parsePtr->numWords ; words++) {
tokenPtr = TokenAfter(tokenPtr);
CompileWord(envPtr, tokenPtr, interp, words);
@@ -4968,6 +4975,12 @@ TclCompileDivOpCmd(
CompileWord(envPtr, tokenPtr, interp,1);
TclEmitOpcode(INST_DIV, envPtr);
return TCL_OK;
+ } else {
+ /*
+ * TODO: get compiled version that passes mathop-6.18
+ * For now, fallback to direct evaluation.
+ */
+ return TCL_ERROR;
}
tokenPtr = TokenAfter(parsePtr->tokenPtr);
CompileWord(envPtr, tokenPtr, interp,1);