From ea4359e97e8e3f6d09167b4d8baddb6d911bacb4 Mon Sep 17 00:00:00 2001 From: Arne Goedeke <el@laramies.com> Date: Wed, 2 Jul 2014 11:49:36 +0200 Subject: [PATCH] TYPE_SUBTYPE: avoid undefined behavior (X) << 16 cannot always be represented by an int --- src/svalue.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/svalue.h b/src/svalue.h index 10415db3c9..58eb7548ad 100644 --- a/src/svalue.h +++ b/src/svalue.h @@ -151,9 +151,9 @@ struct svalue #define SET_SVAL_TYPE_DC(SVAL, TYPE) SET_SVAL_TYPE(SVAL, TYPE) #else #if PIKE_BYTEORDER == 1234 -#define TYPE_SUBTYPE(X,Y) ((X)|((Y)<<16)) +#define TYPE_SUBTYPE(X,Y) ((unsigned int)(X)|((unsigned int)(Y)<<16)) #else -#define TYPE_SUBTYPE(X,Y) ((Y)|((X)<<16)) +#define TYPE_SUBTYPE(X,Y) ((unsigned int)(Y)|((unsigned int)(X)<<16)) #endif #define SET_SVAL_TYPE_SUBTYPE(SVAL, TYPE, SUBTYPE) \ -- GitLab