diff --git a/src/Makefile b/src/Makefile index b23d671f..7ddb643c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -231,7 +231,7 @@ ifeq ($(COMP),clang) endif ### 3.2 General compiler settings -CXXFLAGS = -g -Wall -Wcast-qual -fno-exceptions -fno-rtti $(EXTRACXXFLAGS) +CXXFLAGS = -Wall -Wcast-qual -fno-exceptions -fno-rtti $(EXTRACXXFLAGS) ifeq ($(comp),gcc) CXXFLAGS += -ansi -pedantic -Wno-long-long -Wextra -Wshadow @@ -275,6 +275,8 @@ endif ### 3.4 Debugging ifeq ($(debug),no) CXXFLAGS += -DNDEBUG +else + CXXFLAGS += -g endif ### 3.5 Optimization @@ -354,6 +356,7 @@ endif ### needs access to the optimization flags. ifeq ($(comp),gcc) ifeq ($(optimize),yes) + ifeq ($(debug),no) GCC_MAJOR := `$(CXX) -dumpversion | cut -f1 -d.` GCC_MINOR := `$(CXX) -dumpversion | cut -f2 -d.` ifeq (1,$(shell expr \( $(GCC_MAJOR) \> 4 \) \| \( $(GCC_MAJOR) \= 4 \& $(GCC_MINOR) \>= 5 \))) @@ -361,6 +364,7 @@ ifeq ($(comp),gcc) LDFLAGS += $(CXXFLAGS) endif endif + endif endif ### ========================================================================== diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 68984802..c5af2f89 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -821,7 +821,8 @@ Value do_evaluate(const Position& pos, Value& margin) { // If there is an enemy rook or queen attacking the pawn from behind, // add all X-ray attacks by the rook or queen. Otherwise consider only // the squares in the pawn's path attacked or occupied by the enemy. - if (forward_bb(Them, s) & pos.pieces(Them, ROOK, QUEEN) & pos.attacks_from(s)) + if ( (forward_bb(Them, s) & pos.pieces(Them, ROOK, QUEEN)) // Unlikely + && (forward_bb(Them, s) & pos.pieces(Them, ROOK, QUEEN) & pos.attacks_from(s))) unsafeSquares = squaresToQueen; else unsafeSquares = squaresToQueen & (ei.attackedBy[Them][ALL_PIECES] | pos.pieces(Them));