mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 22:35:24 +00:00
zig.h: fix shift ub for a shlo by 0
This commit is contained in:
parent
9f4ef4de23
commit
fad2142ecf
@ -810,7 +810,7 @@ static inline void zig_vmulo_i16(zig_u8 *ov, zig_i16 *res, int n,
|
||||
\
|
||||
static inline bool zig_shlo_u##w(zig_u##w *res, zig_u##w lhs, zig_u8 rhs, zig_u8 bits) { \
|
||||
*res = zig_shlw_u##w(lhs, rhs, bits); \
|
||||
return (lhs & zig_maxInt_u##w << (bits - rhs)) != zig_as_u##w(0); \
|
||||
return lhs > zig_maxInt_u##w >> rhs; \
|
||||
} \
|
||||
\
|
||||
static inline bool zig_shlo_i##w(zig_i##w *res, zig_i##w lhs, zig_u8 rhs, zig_u8 bits) { \
|
||||
@ -1340,7 +1340,7 @@ static inline zig_i128 zig_mulw_i128(zig_i128 lhs, zig_i128 rhs, zig_u8 bits) {
|
||||
|
||||
static inline bool zig_shlo_u128(zig_u128 *res, zig_u128 lhs, zig_u8 rhs, zig_u8 bits) {
|
||||
*res = zig_shlw_u128(lhs, rhs, bits);
|
||||
return zig_and_u128(lhs, zig_shl_u128(zig_maxInt_u128, bits - rhs)) != zig_as_u128(0, 0);
|
||||
return zig_cmp_u128(lhs, zig_shr_u128(zig_maxInt_u128, rhs)) > zig_as_i32(0);
|
||||
}
|
||||
|
||||
static inline bool zig_shlo_i128(zig_i128 *res, zig_i128 lhs, zig_u8 rhs, zig_u8 bits) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user