Fix pos_is_ok for castling with non-king piece
authorFabian Fichter <ianfab@users.noreply.github.com>
Fri, 20 Sep 2019 15:59:44 +0000 (17:59 +0200)
committerFabian Fichter <ianfab@users.noreply.github.com>
Fri, 20 Sep 2019 15:59:44 +0000 (17:59 +0200)
No functional change.

src/position.cpp

index 56f3a96..f6ef5db 100644 (file)
@@ -2033,7 +2033,7 @@ bool Position::pos_is_ok() const {
 
           if (   piece_on(castlingRookSquare[cr]) != make_piece(c, ROOK)
               || castlingRightsMask[castlingRookSquare[cr]] != cr
-              || (castlingRightsMask[square<KING>(c)] & cr) != cr)
+              || (count<KING>(c) && (castlingRightsMask[square<KING>(c)] & cr) != cr))
               assert(0 && "pos_is_ok: Castling");
       }