[FYI] Fix ia64-linux-nat.c

Tom Tromey tom@tromey.com
Sun Nov 18 16:34:00 GMT 2018


PR build/23814 points out that ia64-linux-nat.c will not compile any
more.  This patch fixes the problem.  Thanks to Andreas Schwab for
trying the patch.

gdb/ChangeLog
2018-11-18  Tom Tromey  <tom@tromey.com>

	PR build/23814:
	* target-delegates.c: Rebuild.
	* ia64-linux-nat.c (class ia64_linux_nat_target)
	<have_steppable_watchpoint>: Use override.  Return true, not 1.
	(ia64_linux_nat_target::can_use_hw_breakpoint): Rename.  Remove
	"self" argument.
	(ia64_linux_nat_target::low_new_thread): Rename.
	(class ia64_linux_nat_target) <read_description>: Don't declare.
	* target.h (struct target_ops) <have_steppable_watchpoint>: Return
	bool.
---
 gdb/ChangeLog          | 13 +++++++++++++
 gdb/ia64-linux-nat.c   | 15 ++++++---------
 gdb/target-delegates.c | 14 +++++++-------
 gdb/target.h           |  2 +-
 4 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c
index 1d39ec5c30..54f76b9238 100644
--- a/gdb/ia64-linux-nat.c
+++ b/gdb/ia64-linux-nat.c
@@ -57,8 +57,6 @@ public:
 					ULONGEST offset, ULONGEST len,
 					ULONGEST *xfered_len) override;
 
-  const struct target_desc *read_description () override;
-
   /* Override watchpoint routines.  */
 
   /* The IA-64 architecture can step over a watch point (without
@@ -70,7 +68,7 @@ public:
      has determined that a hardware watchpoint has indeed been hit.
      The CPU will then be able to execute one instruction without
      triggering a watchpoint.  */
-  bool have_steppable_watchpoint () { return 1; }
+  bool have_steppable_watchpoint () override { return true; }
 
   int can_use_hw_breakpoint (enum bptype, int, int) override;
   bool stopped_by_watchpoint () override;
@@ -672,8 +670,8 @@ ia64_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len,
   return -1;
 }
 
-static void
-ia64_linux_new_thread (struct lwp_info *lp)
+void
+ia64_linux_nat_target::low_new_thread (struct lwp_info *lp)
 {
   int i, any;
 
@@ -719,10 +717,9 @@ ia64_linux_nat_target::stopped_by_watchpoint ()
   return stopped_data_address (&addr);
 }
 
-static int
-ia64_linux_can_use_hw_breakpoint (struct target_ops *self,
-				  enum bptype type,
-				  int cnt, int othertype)
+int
+ia64_linux_nat_target::can_use_hw_breakpoint (enum bptype type,
+					      int cnt, int othertype)
 {
   return 1;
 }
diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c
index 03136dfacf..eeb5057ce7 100644
--- a/gdb/target-delegates.c
+++ b/gdb/target-delegates.c
@@ -35,7 +35,7 @@ struct dummy_target : public target_ops
   int insert_mask_watchpoint (CORE_ADDR arg0, CORE_ADDR arg1, enum target_hw_bp_type arg2) override;
   int remove_mask_watchpoint (CORE_ADDR arg0, CORE_ADDR arg1, enum target_hw_bp_type arg2) override;
   bool stopped_by_watchpoint () override;
-  int have_steppable_watchpoint () override;
+  bool have_steppable_watchpoint () override;
   bool stopped_data_address (CORE_ADDR *arg0) override;
   bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
   int region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1) override;
@@ -202,7 +202,7 @@ struct debug_target : public target_ops
   int insert_mask_watchpoint (CORE_ADDR arg0, CORE_ADDR arg1, enum target_hw_bp_type arg2) override;
   int remove_mask_watchpoint (CORE_ADDR arg0, CORE_ADDR arg1, enum target_hw_bp_type arg2) override;
   bool stopped_by_watchpoint () override;
-  int have_steppable_watchpoint () override;
+  bool have_steppable_watchpoint () override;
   bool stopped_data_address (CORE_ADDR *arg0) override;
   bool watchpoint_addr_within_range (CORE_ADDR arg0, CORE_ADDR arg1, int arg2) override;
   int region_ok_for_hw_watchpoint (CORE_ADDR arg0, int arg1) override;
@@ -989,27 +989,27 @@ debug_target::stopped_by_watchpoint ()
   return result;
 }
 
-int
+bool
 target_ops::have_steppable_watchpoint ()
 {
   return this->beneath ()->have_steppable_watchpoint ();
 }
 
-int
+bool
 dummy_target::have_steppable_watchpoint ()
 {
   return false;
 }
 
-int
+bool
 debug_target::have_steppable_watchpoint ()
 {
-  int result;
+  bool result;
   fprintf_unfiltered (gdb_stdlog, "-> %s->have_steppable_watchpoint (...)\n", this->beneath ()->shortname ());
   result = this->beneath ()->have_steppable_watchpoint ();
   fprintf_unfiltered (gdb_stdlog, "<- %s->have_steppable_watchpoint (", this->beneath ()->shortname ());
   fputs_unfiltered (") = ", gdb_stdlog);
-  target_debug_print_int (result);
+  target_debug_print_bool (result);
   fputs_unfiltered ("\n", gdb_stdlog);
   return result;
 }
diff --git a/gdb/target.h b/gdb/target.h
index 6f4b73bf00..4731e3bf79 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -554,7 +554,7 @@ struct target_ops
       TARGET_DEFAULT_RETURN (1);
     virtual bool stopped_by_watchpoint ()
       TARGET_DEFAULT_RETURN (false);
-    virtual int have_steppable_watchpoint ()
+    virtual bool have_steppable_watchpoint ()
       TARGET_DEFAULT_RETURN (false);
     virtual bool stopped_data_address (CORE_ADDR *)
       TARGET_DEFAULT_RETURN (false);
-- 
2.17.2



More information about the Gdb-patches mailing list