From 1bb686a9ff3776ca54dd2c9a8d936a010951bdce Mon Sep 17 00:00:00 2001 From: dzaima Date: Sat, 19 Aug 2023 21:48:11 +0300 Subject: [PATCH] fix UB in grade.h --- src/builtins/grade.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/builtins/grade.h b/src/builtins/grade.h index 3cdf5ec5..a818a777 100644 --- a/src/builtins/grade.h +++ b/src/builtins/grade.h @@ -478,7 +478,7 @@ B GRADE_CAT(c2)(B t, B w, B x) { if (xia/4 < wia) { // Narrow x assert(el_i8 <=we && we<=el_i32); assert(el_i16<=xe && xe<=el_f64); - i32 pre = -1; pre<<=(8<<(we-el_i8))-1; + i32 pre = (i32) (U32_MAX << ((8<<(we-el_i8))-1)); pre = GRADE_UD(pre,-1-pre); // Smallest value of w's type i32 w0 = o2iG(IGetU(w,0)); // Saturation is correct except it can move low values past