diff --git a/src/interpreter.h b/src/interpreter.h index d97766ee7d2aaf1654d7a25670e69bbc09b1785c..6fe5c7ac345bce4271750add22e49ca29d4acc54 100644 --- a/src/interpreter.h +++ b/src/interpreter.h @@ -138,9 +138,9 @@ static int eval_instruction(PIKE_OPCODE_T *pc) CASE(F_PREFIX_768); prefix+=768; DONE; CASE(F_PREFIX_1024); prefix+=1024; DONE; CASE(F_PREFIX_24BITX256); - prefix += (pc++)[0]<<24; + prefix += (unsigned INT32)(pc++)[0]<<24; CASE(F_PREFIX_WORDX256); - prefix += (pc++)[0]<<16; + prefix += (unsigned INT32)(pc++)[0]<<16; CASE(F_PREFIX_CHARX256); prefix += (pc++)[0]<<8; DONE; @@ -151,9 +151,9 @@ static int eval_instruction(PIKE_OPCODE_T *pc) CASE(F_PREFIX2_768); prefix2+=768; DONE; CASE(F_PREFIX2_1024); prefix2+=1024; DONE; CASE(F_PREFIX2_24BITX256); - prefix2 += (pc++)[0]<<24; + prefix2 += (unsigned INT32)(pc++)[0]<<24; CASE(F_PREFIX2_WORDX256); - prefix2 += (pc++)[0]<<16; + prefix2 += (unsigned INT32)(pc++)[0]<<16; CASE(F_PREFIX2_CHARX256); prefix2 += (pc++)[0]<<8; DONE;