From 599e6635fbd970af8cb80b92622da8b5c1758532 Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Thu, 18 Feb 2016 15:19:01 +0100 Subject: [PATCH] libCom/calc: fix bit31 bit manipulations --- src/libCom/calc/calcPerform.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/libCom/calc/calcPerform.c b/src/libCom/calc/calcPerform.c index 0e8fcd5e9..76c0e1623 100644 --- a/src/libCom/calc/calcPerform.c +++ b/src/libCom/calc/calcPerform.c @@ -284,33 +284,33 @@ epicsShareFunc long break; case BIT_OR: - itop = (epicsInt32) *ptop--; - *ptop = (epicsInt32) *ptop | itop; + itop = (epicsUInt32) *ptop--; + *ptop = (epicsInt32) ((epicsUInt32)*ptop | itop); break; case BIT_AND: - itop = (epicsInt32) *ptop--; - *ptop = (epicsInt32) *ptop & itop; + itop = (epicsUInt32) *ptop--; + *ptop = (epicsInt32) ((epicsUInt32) *ptop & itop); break; case BIT_EXCL_OR: - itop = (epicsInt32) *ptop--; - *ptop = (epicsInt32) *ptop ^ itop; + itop = (epicsUInt32) *ptop--; + *ptop = (epicsInt32) ((epicsUInt32) *ptop ^ itop); break; case BIT_NOT: - itop = (epicsInt32) *ptop; + itop = (epicsUInt32) *ptop; *ptop = ~itop; break; case RIGHT_SHIFT: itop = (epicsInt32) *ptop--; - *ptop = (epicsInt32) *ptop >> itop; + *ptop = (epicsInt32) (epicsUInt32) *ptop >> itop; break; case LEFT_SHIFT: itop = (epicsInt32) *ptop--; - *ptop = (epicsInt32) *ptop << itop; + *ptop = (epicsInt32) ((epicsUInt32) *ptop << itop); break; case NOT_EQ: