diff --git a/gdb/break-catch-load.c b/gdb/break-catch-load.c
index 617ee2b694d..58764218401 100644
--- a/gdb/break-catch-load.c
+++ b/gdb/break-catch-load.c
@@ -134,7 +134,7 @@ solib_catchpoint::check_status (struct bpstat *bs)
 	}
     }
 
-  bs->stop = 0;
+  bs->stop = false;
   bs->print_it = print_it_noop;
 }
 
diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c
index 6557ee71449..66432552db6 100644
--- a/gdb/break-catch-throw.c
+++ b/gdb/break-catch-throw.c
@@ -172,7 +172,7 @@ exception_catchpoint::check_status (struct bpstat *bs)
   std::string type_name;
 
   this->breakpoint::check_status (bs);
-  if (bs->stop == 0)
+  if (!bs->stop)
     return;
 
   if (self->pattern == NULL)
@@ -200,7 +200,7 @@ exception_catchpoint::check_status (struct bpstat *bs)
   if (name != nullptr)
     {
       if (self->pattern->exec (name, 0, NULL, 0) != 0)
-	bs->stop = 0;
+	bs->stop = false;
     }
 }
 
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 490708938ec..e7fec0eefd9 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -5127,7 +5127,7 @@ bpstat_check_location (const struct bp_location *bl,
 }
 
 /* Determine if the watched values have actually changed, and we
-   should stop.  If not, set BS->stop to 0.  */
+   should stop.  If not, set BS->stop to false.  */
 
 static void
 bpstat_check_watchpoint (bpstat *bs)
@@ -5194,7 +5194,7 @@ bpstat_check_watchpoint (bpstat *bs)
 	      break;
 	    case WP_IGNORE:
 	      bs->print_it = print_it_noop;
-	      bs->stop = 0;
+	      bs->stop = false;
 	      break;
 	    case WP_VALUE_CHANGED:
 	      if (b->type == bp_read_watchpoint)
@@ -5261,7 +5261,7 @@ bpstat_check_watchpoint (bpstat *bs)
 			 updated it, so this trap must be for a write.
 			 Ignore it.  */
 		      bs->print_it = print_it_noop;
-		      bs->stop = 0;
+		      bs->stop = false;
 		    }
 		}
 	      break;
@@ -5272,7 +5272,7 @@ bpstat_check_watchpoint (bpstat *bs)
 		  /* Don't stop: write watchpoints shouldn't fire if
 		     the value hasn't changed.  */
 		  bs->print_it = print_it_noop;
-		  bs->stop = 0;
+		  bs->stop = false;
 		}
 	      /* Stop.  */
 	      break;
@@ -5288,7 +5288,7 @@ bpstat_check_watchpoint (bpstat *bs)
 	     watchpoint triggered after all.  So don't print
 	     anything for this watchpoint.  */
 	  bs->print_it = print_it_noop;
-	  bs->stop = 0;
+	  bs->stop = false;
 	}
     }
 }
@@ -5331,7 +5331,7 @@ bpstat_check_breakpoint_conditions (bpstat *bs, thread_info *thread)
       infrun_debug_printf ("incorrect frame %s not %s, not stopping",
 			   get_stack_frame_id (get_current_frame ()).to_string ().c_str (),
 			   b->frame_id.to_string ().c_str ());
-      bs->stop = 0;
+      bs->stop = false;
       return;
     }
 
@@ -5342,7 +5342,7 @@ bpstat_check_breakpoint_conditions (bpstat *bs, thread_info *thread)
       || (b->task != 0 && b->task != ada_get_task_number (thread)))
     {
       infrun_debug_printf ("incorrect thread or task, not stopping");
-      bs->stop = 0;
+      bs->stop = false;
       return;
     }
 
@@ -5432,7 +5432,7 @@ bpstat_check_breakpoint_conditions (bpstat *bs, thread_info *thread)
   if (cond != nullptr && !condition_result)
     {
       infrun_debug_printf ("condition_result = false, not stopping");
-      bs->stop = 0;
+      bs->stop = false;
       return;
     }
   else if (b->ignore_count > 0)
@@ -5440,7 +5440,7 @@ bpstat_check_breakpoint_conditions (bpstat *bs, thread_info *thread)
       infrun_debug_printf ("ignore count %d, not stopping",
 			   b->ignore_count);
       b->ignore_count--;
-      bs->stop = 0;
+      bs->stop = false;
       /* Increase the hit count even though we don't stop.  */
       ++(b->hit_count);
       gdb::observers::breakpoint_modified.notify (b);
@@ -5503,8 +5503,8 @@ build_bpstat_chain (const address_space *aspace, CORE_ADDR bp_addr,
 	  /* Assume we stop.  Should we find a watchpoint that is not
 	     actually triggered, or if the condition of the breakpoint
 	     evaluates as false, we'll reset 'stop' to 0.  */
-	  bs->stop = 1;
-	  bs->print = 1;
+	  bs->stop = true;
+	  bs->print = true;
 
 	  /* If this is a scope breakpoint, mark the associated
 	     watchpoint as triggered so that we will handle the
@@ -5530,8 +5530,8 @@ build_bpstat_chain (const address_space *aspace, CORE_ADDR bp_addr,
 	    {
 	      bpstat *bs = new bpstat (loc, &bs_link);
 	      /* For hits of moribund locations, we should just proceed.  */
-	      bs->stop = 0;
-	      bs->print = 0;
+	      bs->stop = false;
+	      bs->print = false;
 	      bs->print_it = print_it_noop;
 	    }
 	}
@@ -5608,11 +5608,11 @@ bpstat_stop_status (const address_space *aspace,
 		}
 	      gdb::observers::breakpoint_modified.notify (b);
 	      if (b->silent)
-		bs->print = 0;
+		bs->print = false;
 	      bs->commands = b->commands;
 	      if (command_line_is_silent (bs->commands
 					  ? bs->commands.get () : NULL))
-		bs->print = 0;
+		bs->print = false;
 
 	      b->after_condition_true (bs);
 	    }
@@ -11754,11 +11754,11 @@ internal_breakpoint::check_status (bpstat *bs)
 	 events.  This allows the user to get control and place
 	 breakpoints in initializer routines for dynamically loaded
 	 objects (among other things).  */
-      bs->stop = stop_on_solib_events;
-      bs->print = stop_on_solib_events;
+      bs->stop = stop_on_solib_events != 0;
+      bs->print = stop_on_solib_events != 0;
     }
   else
-    bs->stop = 0;
+    bs->stop = false;
 }
 
 enum print_stop_action
@@ -12005,7 +12005,7 @@ dprintf_breakpoint::after_condition_true (struct bpstat *bs)
   /* dprintf's never cause a stop.  This wasn't set in the
      check_status hook instead because that would make the dprintf's
      condition not be evaluated.  */
-  bs->stop = 0;
+  bs->stop = false;
 
   /* Run the command list here.  Take ownership of it instead of
      copying.  We never want these commands to run later in
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 360fa760577..305c50c1c34 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -664,7 +664,8 @@ struct breakpoint
 			      const target_waitstatus &ws);
 
   /* Check internal conditions of the breakpoint referred to by BS.
-     If we should not stop for this breakpoint, set BS->stop to 0.  */
+     If we should not stop for this breakpoint, set BS->stop to
+     false.  */
   virtual void check_status (struct bpstat *bs)
   {
     /* Always stop.  */
@@ -1312,11 +1313,11 @@ struct bpstat
     /* Old value associated with a watchpoint.  */
     value_ref_ptr old_val;
 
-    /* Nonzero if this breakpoint tells us to print the frame.  */
-    char print;
+    /* True if this breakpoint tells us to print the frame.  */
+    bool print;
 
-    /* Nonzero if this breakpoint tells us to stop.  */
-    char stop;
+    /* True if this breakpoint tells us to stop.  */
+    bool stop;
 
     /* Tell bpstat_print and print_bp_stop_message how to print stuff
        associated with this element of the bpstat chain.  */
diff --git a/gdb/extension.c b/gdb/extension.c
index 8cbd80f45d5..ca6305a3f43 100644
--- a/gdb/extension.c
+++ b/gdb/extension.c
@@ -597,7 +597,7 @@ get_breakpoint_cond_ext_lang (struct breakpoint *b,
 /* Return whether a stop condition for breakpoint B says to stop.
    True is also returned if there is no stop condition for B.  */
 
-int
+bool
 breakpoint_ext_lang_cond_says_stop (struct breakpoint *b)
 {
   enum ext_lang_bp_stop stop = EXT_LANG_BP_STOP_UNSET;
@@ -626,7 +626,7 @@ breakpoint_ext_lang_cond_says_stop (struct breakpoint *b)
 	}
     }
 
-  return stop == EXT_LANG_BP_STOP_NO ? 0 : 1;
+  return stop != EXT_LANG_BP_STOP_NO;
 }
 
 /* ^C/SIGINT support.
diff --git a/gdb/extension.h b/gdb/extension.h
index 72cff218f5b..7586b3c9eca 100644
--- a/gdb/extension.h
+++ b/gdb/extension.h
@@ -300,7 +300,7 @@ extern void preserve_ext_lang_values (struct objfile *, htab_t copied_types);
 extern const struct extension_language_defn *get_breakpoint_cond_ext_lang
   (struct breakpoint *b, enum extension_language skip_lang);
 
-extern int breakpoint_ext_lang_cond_says_stop (struct breakpoint *);
+extern bool breakpoint_ext_lang_cond_says_stop (struct breakpoint *);
 
 /* If a method with name METHOD_NAME is to be invoked on an object of type
    TYPE, then all extension languages are searched for implementations of
