+ // Non-pawn enemies attacked by a pawn
+ weak = (pos.pieces(Them) ^ pos.pieces(Them, PAWN)) & ei.attackedBy[Us][PAWN];
+
+ if (weak)
+ {
+ b = pos.pieces(Us, PAWN) & ( ~ei.attackedBy[Them][ALL_PIECES]
+ | ei.attackedBy[Us][ALL_PIECES]);
+
+ safeThreats = (shift_bb<Right>(b) | shift_bb<Left>(b)) & weak;
+
+ if (weak ^ safeThreats)
+ score += ThreatenedByHangingPawn;
+
+ while (safeThreats)
+ score += ThreatenedByPawn[type_of(pos.piece_on(pop_lsb(&safeThreats)))];
+ }
+