[4/4] Use gdb::checked_static_cast for catchpoints

Message ID 20230915-watchpoint-casts-v1-4-a4ff35c9644e@adacore.com
State New
Headers
Series Use checked_static_cast for breakpoint casts |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed

Commit Message

Tom Tromey Sept. 15, 2023, 6:36 p.m. UTC
  This replaces some casts to various kinds of catchpoint with
checked_static_cast.
---
 gdb/ada-lang.c            | 3 ++-
 gdb/break-catch-sig.c     | 8 +++++---
 gdb/break-catch-syscall.c | 4 ++--
 3 files changed, 9 insertions(+), 6 deletions(-)
  

Patch

diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 2496c099f19..b1de58cce6f 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -12203,7 +12203,8 @@  ada_catchpoint::allocate_location ()
 bool
 ada_catchpoint::should_stop_exception (const struct bp_location *bl) const
 {
-  struct ada_catchpoint *c = (struct ada_catchpoint *) bl->owner;
+  struct ada_catchpoint *c
+    = gdb::checked_static_cast<ada_catchpoint *> (bl->owner);
   const struct ada_catchpoint_location *ada_loc
     = (const struct ada_catchpoint_location *) bl;
   bool stop;
diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c
index 10c8b81f8e8..cc4f525e3a3 100644
--- a/gdb/break-catch-sig.c
+++ b/gdb/break-catch-sig.c
@@ -103,7 +103,8 @@  signal_to_name_or_int (enum gdb_signal sig)
 int
 signal_catchpoint::insert_location (struct bp_location *bl)
 {
-  struct signal_catchpoint *c = (struct signal_catchpoint *) bl->owner;
+  struct signal_catchpoint *c
+    = gdb::checked_static_cast<signal_catchpoint *> (bl->owner);
 
   if (!c->signals_to_be_caught.empty ())
     {
@@ -130,7 +131,8 @@  int
 signal_catchpoint::remove_location (struct bp_location *bl,
 				    enum remove_bp_reason reason)
 {
-  struct signal_catchpoint *c = (struct signal_catchpoint *) bl->owner;
+  struct signal_catchpoint *c
+    = gdb::checked_static_cast<signal_catchpoint *> (bl->owner);
 
   if (!c->signals_to_be_caught.empty ())
     {
@@ -166,7 +168,7 @@  signal_catchpoint::breakpoint_hit (const struct bp_location *bl,
 				   const target_waitstatus &ws)
 {
   const struct signal_catchpoint *c
-    = (const struct signal_catchpoint *) bl->owner;
+    = gdb::checked_static_cast<const signal_catchpoint *> (bl->owner);
   gdb_signal signal_number;
 
   if (ws.kind () != TARGET_WAITKIND_STOPPED)
diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c
index 9abf8183984..313ac44562c 100644
--- a/gdb/break-catch-syscall.c
+++ b/gdb/break-catch-syscall.c
@@ -480,10 +480,10 @@  catch_syscall_enabled (void)
 static bool
 catching_syscall_number_1 (struct breakpoint *b, int syscall_number)
 {
-
   if (is_syscall_catchpoint_enabled (b))
     {
-      struct syscall_catchpoint *c = (struct syscall_catchpoint *) b;
+      struct syscall_catchpoint *c
+	= gdb::checked_static_cast<syscall_catchpoint *> (b);
 
       if (!c->syscalls_to_be_caught.empty ())
 	{