summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2021-12-16 21:02:15 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2021-12-16 21:02:15 (GMT)
commit6a3a8ae8ff86616bd067ce4fdc775550903afab9 (patch)
tree9c84ad1a1b503cbd06aed6cd9dfe7025cc210634 /generic/tclExecute.c
parent22325d1e0843a7d1511f7ec81a4958939ab3faaf (diff)
downloadtcl-6a3a8ae8ff86616bd067ce4fdc775550903afab9.zip
tcl-6a3a8ae8ff86616bd067ce4fdc775550903afab9.tar.gz
tcl-6a3a8ae8ff86616bd067ce4fdc775550903afab9.tar.bz2
Suggested fix for [b0f84119c8]: TEBCresume(): undefined behavior for INST_LSHIFT
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 8963472..7e014d4 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -6379,10 +6379,10 @@ TEBCresume(
* Handle shifts within the native long range.
*/
- if ((size_t) shift < CHAR_BIT*sizeof(long) && (l1 != 0)
+ if (((size_t) shift < CHAR_BIT*sizeof(long))
&& !((l1>0 ? l1 : ~l1) &
- -(1L<<(CHAR_BIT*sizeof(long) - 1 - shift)))) {
- lResult = l1 << shift;
+ -(1UL<<(CHAR_BIT*sizeof(long) - 1 - shift)))) {
+ lResult = (unsigned long)l1 << shift;
goto longResultOfArithmetic;
}
}