diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-03-08 15:21:25 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-03-08 15:21:25 (GMT) |
commit | aaead6c7ae251886735590603d20616cc63a497f (patch) | |
tree | b94cc228084f456d467f529b4427630df26a6bad | |
parent | 9c28f4fc5f89366f31d58cf585b33aff028ea5d6 (diff) | |
download | tcl-aaead6c7ae251886735590603d20616cc63a497f.zip tcl-aaead6c7ae251886735590603d20616cc63a497f.tar.gz tcl-aaead6c7ae251886735590603d20616cc63a497f.tar.bz2 |
Fix [1c7f179710]: undefined behavior for INST_LSHIFT in ExecuteExtendedBinaryMathOp()
-rw-r--r-- | generic/tclExecute.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index b96eab4..a26aae1 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -8661,9 +8661,9 @@ ExecuteExtendedBinaryMathOp( && ((size_t)shift < CHAR_BIT*sizeof(Tcl_WideInt))) { TclGetWideIntFromObj(NULL, valuePtr, &w1); if (!((w1>0 ? w1 : ~w1) - & -(((Tcl_WideInt)1) + & -(((Tcl_WideUInt)1) << (CHAR_BIT*sizeof(Tcl_WideInt) - 1 - shift)))) { - WIDE_RESULT(w1 << shift); + WIDE_RESULT((Tcl_WideUInt)w1 << shift); } } } else { |