aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Naydanov <evgeniy.naydanov@syntacore.com>2024-09-16 18:01:17 +0300
committerEvgeniy Naydanov <evgeniy.naydanov@syntacore.com>2024-09-16 18:41:08 +0300
commit4c45762d76ce72df157a2b51993ccd8392104e82 (patch)
treec20261dfff00ecea3c98b2e9311a220289dabbce
parent269c57e37629baba43cd6944539df63d0913398c (diff)
downloadriscv-openocd-4c45762d76ce72df157a2b51993ccd8392104e82.zip
riscv-openocd-4c45762d76ce72df157a2b51993ccd8392104e82.tar.gz
riscv-openocd-4c45762d76ce72df157a2b51993ccd8392104e82.tar.bz2
target/breakpoints: fix types in `watchpoint_add_internal()`
There was a conflict: 1. commit 2cd8ebf44d1a ("breakpoints: use 64-bit type for watchpoint mask and value") 2. commit 0bf3373e808a ("target/breakpoints: Use 'unsigned int' for length") The second commit was created erlier, but merged later so the types of `mask` and `value` became `uint32_t` in `watchpoint_add_internal()`. This created a bug: `WATCHPOINT_IGNORE_DATA_VALUE_MASK` is defined as `(~(uint64_t)0)`. Truncation to uint32_t makes it so the comparisons with the constant don't work. Change-Id: I19c414c351f52aff72a60330d83c29db7bbca375 Signed-off-by: Evgeniy Naydanov <evgeniy.naydanov@syntacore.com>
-rw-r--r--src/target/breakpoints.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/target/breakpoints.c b/src/target/breakpoints.c
index a1ef3bf..0427ba3 100644
--- a/src/target/breakpoints.c
+++ b/src/target/breakpoints.c
@@ -542,7 +542,7 @@ struct breakpoint *breakpoint_find(struct target *target, target_addr_t address)
}
static int watchpoint_add_internal(struct target *target, target_addr_t address,
- unsigned int length, enum watchpoint_rw rw, uint32_t value, uint32_t mask)
+ unsigned int length, enum watchpoint_rw rw, uint64_t value, uint64_t mask)
{
struct watchpoint *watchpoint = target->watchpoints;
struct watchpoint **watchpoint_p = &target->watchpoints;