diff options
author | Tom Tromey <tom@tromey.com> | 2023-01-20 07:46:51 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-02-19 12:51:06 -0700 |
commit | 0d1912950e35ff6555d12c0baa983acc006c3cf0 (patch) | |
tree | da40715cada37627b7c1d943cb251c30585a14fa /gdb | |
parent | b32797e8b99b53d4cdd22a4e649792146b219adc (diff) | |
download | gdb-0d1912950e35ff6555d12c0baa983acc006c3cf0.zip gdb-0d1912950e35ff6555d12c0baa983acc006c3cf0.tar.gz gdb-0d1912950e35ff6555d12c0baa983acc006c3cf0.tar.bz2 |
Convert contained_in to method
This converts contained_in to be a method of block.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/block.c | 7 | ||||
-rw-r--r-- | gdb/block.h | 19 | ||||
-rw-r--r-- | gdb/blockframe.c | 2 | ||||
-rw-r--r-- | gdb/breakpoint.c | 2 | ||||
-rw-r--r-- | gdb/frame.c | 2 | ||||
-rw-r--r-- | gdb/inline-frame.c | 2 | ||||
-rw-r--r-- | gdb/parse.c | 2 | ||||
-rw-r--r-- | gdb/printcmd.c | 6 |
8 files changed, 20 insertions, 22 deletions
diff --git a/gdb/block.c b/gdb/block.c index 334d818..4e40247 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -65,15 +65,14 @@ block::gdbarch () const /* See block.h. */ bool -contained_in (const struct block *a, const struct block *b, - bool allow_nested) +block::contains (const struct block *a, bool allow_nested) const { - if (!a || !b) + if (a == nullptr) return false; do { - if (a == b) + if (a == this) return true; /* If A is a function block, then A cannot be contained in B, except if A was inlined. */ diff --git a/gdb/block.h b/gdb/block.h index 32e3c9e..cdcee08 100644 --- a/gdb/block.h +++ b/gdb/block.h @@ -271,6 +271,15 @@ struct block : public allocate_on_obstack struct dynamic_prop *static_link () const; + /* Return true if block A is lexically nested within this block, or + if A and this block have the same pc range. Return false + otherwise. If ALLOW_NESTED is true, then block A is considered + to be in this block if A is in a nested function in this block's + function. If ALLOW_NESTED is false (the default), then blocks in + nested functions are not considered to be contained. */ + + bool contains (const struct block *a, bool allow_nested = false) const; + private: /* If the namespace_info is NULL, allocate it via OBSTACK and @@ -400,16 +409,6 @@ private: struct block *m_blocks[1]; }; -/* Return true if block A is lexically nested within block B, or if a - and b have the same pc range. Return false otherwise. If - ALLOW_NESTED is true, then block A is considered to be in block B - if A is in a nested function in B's function. If ALLOW_NESTED is - false (the default), then blocks in nested functions are not - considered to be contained. */ - -extern bool contained_in (const struct block *a, const struct block *b, - bool allow_nested = false); - extern const struct blockvector *blockvector_for_pc (CORE_ADDR, const struct block **); diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 7c9faf4..633a967 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -469,7 +469,7 @@ block_innermost_frame (const struct block *block) while (frame != NULL) { const struct block *frame_block = get_frame_block (frame, NULL); - if (frame_block != NULL && contained_in (frame_block, block)) + if (frame_block != NULL && block->contains (frame_block)) return frame; frame = get_prev_frame (frame); diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index a2f1190..0db3ada 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -5149,7 +5149,7 @@ watchpoint_check (bpstat *bs) function = get_frame_function (fr); if (function == NULL - || !contained_in (b->exp_valid_block, function->value_block ())) + || !function->value_block ()->contains (b->exp_valid_block)) within_current_scope = false; } diff --git a/gdb/frame.c b/gdb/frame.c index 6629f44..9b867b6 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -895,7 +895,7 @@ frame_id_inner (struct gdbarch *gdbarch, struct frame_id l, struct frame_id r) /* This will return true if LB and RB are the same block, or if the block with the smaller depth lexically encloses the block with the greater depth. */ - inner = contained_in (lb, rb); + inner = rb->contains (lb); } else /* Only return non-zero when strictly inner than. Note that, per diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c index 21431a2..80765d5 100644 --- a/gdb/inline-frame.c +++ b/gdb/inline-frame.c @@ -293,7 +293,7 @@ block_starting_point_at (CORE_ADDR pc, const struct block *block) if (new_block == NULL) return 1; - if (new_block == block || contained_in (new_block, block)) + if (new_block == block || block->contains (new_block)) return 0; /* The immediately preceding address belongs to a different block, diff --git a/gdb/parse.c b/gdb/parse.c index 4c20b91..f2917b3 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -86,7 +86,7 @@ innermost_block_tracker::update (const struct block *b, { if ((m_types & t) != 0 && (m_innermost_block == NULL - || contained_in (b, m_innermost_block))) + || m_innermost_block->contains (b))) m_innermost_block = b; } diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 8898469..0d3bc29 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -2139,8 +2139,8 @@ do_one_display (struct display *d) if (d->block) { if (d->pspace == current_program_space) - within_current_scope = contained_in (get_selected_block (0), d->block, - true); + within_current_scope = d->block->contains (get_selected_block (0), + true); else within_current_scope = 0; } @@ -2298,7 +2298,7 @@ Num Enb Expression\n")); else if (d->format.format) gdb_printf ("/%c ", d->format.format); gdb_puts (d->exp_string.c_str ()); - if (d->block && !contained_in (get_selected_block (0), d->block, true)) + if (d->block && !d->block->contains (get_selected_block (0), true)) gdb_printf (_(" (cannot be evaluated in the current context)")); gdb_printf ("\n"); } |