Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

A promotion piece cannot be a king or a pawn

Or any other garbage value bigger then QUEEN.

Signed-off-by: Marco Costalba <>
  • Loading branch information...
commit df7cd94aeeb4e99bed2d46c008efdd5e24085e0f 1 parent f16c231
@mcostalba authored
Showing with 4 additions and 0 deletions.
  1. +4 −0 src/movegen.cpp
4 src/movegen.cpp
@@ -338,6 +338,10 @@ bool move_is_legal(const Position& pos, const Move m, Bitboard pinned) {
||(square_rank(to) == RANK_1 && us != WHITE)) != bool(move_is_promotion(m)))
return false;
+ // The promotion piece, if any, must be valid
+ if (move_promotion_piece(m) > QUEEN || move_promotion_piece(m) == PAWN)
+ return false;
// Proceed according to the square delta between the origin and
// destination squares.
switch (direction)
Please sign in to comment.
Something went wrong with that request. Please try again.