diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ffb0f942eb39..192bbf286a08 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+	* sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
+
 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
 
 	* sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 95317738b0cd..d65d2824e742 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -1565,7 +1565,9 @@ extern struct rtx_def *sh_builtin_saveregs ();
 /* Force sizeof(bool) == 1 to maintain binary compatibility; otherwise, the
    change in SLOW_BYTE_ACCESS would have changed it to 4.  */
 
-#define BOOL_TYPE_SIZE (flag_new_abi ? INT_TYPE_SIZE : CHAR_TYPE_SIZE)
+/* This used to use INT_TYPE_SIZE / CHAR_TYPE_SIZE, but these are
+   not guaranteed to be defined when BOOL_TYPE_SIZE is used.  */
+#define BOOL_TYPE_SIZE (flag_new_abi ? BITS_PER_WORD : BITS_PER_UNIT)
 
 /* We assume that the store-condition-codes instructions store 0 for false
    and some other value for true.  This is the value stored for true.  */