gingerBill 4 years ago
parent
commit
a9c1811027
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/exact_value.cpp

+ 2 - 2
src/exact_value.cpp

@@ -685,8 +685,8 @@ ExactValue exact_binary_operator_value(TokenKind op, ExactValue x, ExactValue y)
 		case Token_CmpOr:  return exact_value_bool(x.value_bool || y.value_bool);
 		case Token_And:    return exact_value_bool(x.value_bool & y.value_bool);
 		case Token_Or:     return exact_value_bool(x.value_bool | y.value_bool);
-		case Token_Xor:    return exact_value_bool(x.value_bool ^ y.value_bool);
-		case Token_AndNot: return exact_value_bool(x.value_bool & ~y.value_bool);
+		case Token_AndNot: return exact_value_bool(x.value_bool & !y.value_bool);
+		case Token_Xor:    return exact_value_bool((x.value_bool && !y.value_bool) || (!x.value_bool && y.value_bool));
 		default: goto error;
 		}
 		break;