Skip to content

Commit 975d74d

Browse files
authored
Fix UB in left-shifts in the M2/M3/M4 macros (bellard#8)
1 parent 03fd974 commit 975d74d

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

quickjs.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30622,9 +30622,9 @@ typedef struct CodeContext {
3062230622
JSAtom atom;
3062330623
} CodeContext;
3062430624

30625-
#define M2(op1, op2) ((op1) | ((op2) << 8))
30626-
#define M3(op1, op2, op3) ((op1) | ((op2) << 8) | ((op3) << 16))
30627-
#define M4(op1, op2, op3, op4) ((op1) | ((op2) << 8) | ((op3) << 16) | ((op4) << 24))
30625+
#define M2(op1, op2) (uint32_t)((op1) | ((op2) << 8))
30626+
#define M3(op1, op2, op3) (uint32_t)((op1) | ((op2 & 0xff) << 8) | ((op3 & 0xff) << 16))
30627+
#define M4(op1, op2, op3, op4) (uint32_t)((op1) | ((uint32_t)(op2 & 0xff) << 8) | ((uint32_t)(op3 & 0xff) << 16) | ((uint32_t)(op4 & 0xff) << 24))
3062830628

3062930629
static BOOL code_match(CodeContext *s, int pos, ...)
3063030630
{

0 commit comments

Comments
 (0)