Discussion:
[FYI] Fix ia64-linux-nat.c
Tom Tromey
2018-11-18 16:33:57 UTC
Permalink
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 <***@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
Loading...