X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fsdk%2Ftools%2Fwidl%2Fexpr.c;h=cf97c7ea20a5b4e4bef2e588f4e6bf19380f8afb;hp=0ada012c9cf20f7e1d5aeb83e44b6eebcfc63b75;hb=1cd18d016a7a1b53832fdcacfb4cf1a9a4b0935d;hpb=7cf942787a95dcd2e531ffe137df768b0c4ade42;ds=sidebyside diff --git a/reactos/sdk/tools/widl/expr.c b/reactos/sdk/tools/widl/expr.c index 0ada012c9cf..cf97c7ea20a 100644 --- a/reactos/sdk/tools/widl/expr.c +++ b/reactos/sdk/tools/widl/expr.c @@ -222,8 +222,8 @@ expr_t *make_exprt(enum expr_type type, var_t *var, expr_t *expr) e->is_const = TRUE; if (is_signed_integer_type(tref)) { - cast_mask = (1 << (cast_type_bits - 1)) - 1; - if (expr->cval & (1 << (cast_type_bits - 1))) + cast_mask = (1u << (cast_type_bits - 1)) - 1; + if (expr->cval & (1u << (cast_type_bits - 1))) e->cval = -((-expr->cval) & cast_mask); else e->cval = expr->cval & cast_mask; @@ -231,8 +231,8 @@ expr_t *make_exprt(enum expr_type type, var_t *var, expr_t *expr) else { /* calculate ((1 << cast_type_bits) - 1) avoiding overflow */ - cast_mask = ((1 << (cast_type_bits - 1)) - 1) | - 1 << (cast_type_bits - 1); + cast_mask = ((1u << (cast_type_bits - 1)) - 1) | + 1u << (cast_type_bits - 1); e->cval = expr->cval & cast_mask; } }