فهرست منبع

Fixed `~` on `bit_set[Some_Enum]` altering the definition of the enum.

This was occurring for enums whose minimum values were greater than
zero.
Barinzaya 6 ماه پیش
والد
کامیت
6e3d17d189
1فایلهای تغییر یافته به همراه2 افزوده شده و 3 حذف شده
  1. 2 3
      src/check_expr.cpp

+ 2 - 3
src/check_expr.cpp

@@ -2599,9 +2599,8 @@ gb_internal ExactValue exact_bit_set_all_set_mask(Type *type) {
 					continue;
 				}
 
-				BigInt shift_amount = f->Constant.value.value_integer;
-				big_int_sub_eq(&shift_amount, &b_lower_base);
-
+				BigInt shift_amount = {};
+				big_int_sub(&shift_amount, &f->Constant.value.value_integer, &b_lower_base);
 
 				BigInt value = {};
 				big_int_shl(&value, &one, &shift_amount);