diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 86b452ba63b7306b925496c931891b547014abf2..71d7839dfd4b47dfdfc8ab6efd98904b564fa424 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+1999-08-18  Richard Henderson  <rth@cygnus.com>
+
+	* tree.c (search_tree): Handle TRUTH_{AND,OR,XOR}_EXPR too.
+	(mapcar): Likewise.
+
 1999-08-17  Mark Mitchell  <mark@codesourcery.com>
 
 	* cp-tree.h (back_end_hook): New variable.
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 61ad108213bb29ff83885d983e53167f5692eb2c..d493b1ec6086364983410be82ecd2d8ec0560851 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1640,6 +1640,9 @@ search_tree (t, func)
       TRY (TREE_OPERAND (t, 2));
       break;
 
+    case TRUTH_AND_EXPR:
+    case TRUTH_OR_EXPR:
+    case TRUTH_XOR_EXPR:
     case TRUTH_ANDIF_EXPR:
     case TRUTH_ORIF_EXPR:
     case PREDECREMENT_EXPR:
@@ -1899,6 +1902,9 @@ mapcar (t, func)
       TREE_OPERAND (t, 2) = mapcar (TREE_OPERAND (t, 2), func);
       return t;
 
+    case TRUTH_AND_EXPR:
+    case TRUTH_OR_EXPR:
+    case TRUTH_XOR_EXPR:
     case TRUTH_ANDIF_EXPR:
     case TRUTH_ORIF_EXPR:
     case PREDECREMENT_EXPR: