Convert block_static_block and block_global_block to methods
This converts block_static_block and block_global_block to be methods. This was mostly written by script. It was simpler to convert them at the same time because they're often used near each other.
This commit is contained in:
parent
99f3dfd0f9
commit
d24e14a0c6
@ -13798,7 +13798,7 @@ public:
|
||||
sym = ada_lookup_symbol (name,
|
||||
(block == nullptr
|
||||
? nullptr
|
||||
: block_static_block (block)),
|
||||
: block->static_block ()),
|
||||
domain);
|
||||
if (sym.symbol != NULL)
|
||||
return sym;
|
||||
|
18
gdb/block.c
18
gdb/block.c
@ -47,7 +47,7 @@ block::objfile () const
|
||||
if (function () != nullptr)
|
||||
return function ()->objfile ();
|
||||
|
||||
global_block = (struct global_block *) block_global_block (this);
|
||||
global_block = (struct global_block *) this->global_block ();
|
||||
return global_block->compunit_symtab->objfile ();
|
||||
}
|
||||
|
||||
@ -349,26 +349,28 @@ block::set_using (struct using_direct *using_decl, struct obstack *obstack)
|
||||
m_namespace_info->using_decl = using_decl;
|
||||
}
|
||||
|
||||
/* Return the static block associated to BLOCK. Return NULL if block
|
||||
is a global block. */
|
||||
/* See block.h. */
|
||||
|
||||
const struct block *
|
||||
block_static_block (const struct block *block)
|
||||
block::static_block () const
|
||||
{
|
||||
if (block->superblock () == NULL)
|
||||
return NULL;
|
||||
if (superblock () == nullptr)
|
||||
return nullptr;
|
||||
|
||||
const block *block = this;
|
||||
while (block->superblock ()->superblock () != NULL)
|
||||
block = block->superblock ();
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
/* Return the static block associated to BLOCK. */
|
||||
/* See block.h. */
|
||||
|
||||
const struct block *
|
||||
block_global_block (const struct block *block)
|
||||
block::global_block () const
|
||||
{
|
||||
const block *block = this;
|
||||
|
||||
while (block->superblock () != NULL)
|
||||
block = block->superblock ();
|
||||
|
||||
|
13
gdb/block.h
13
gdb/block.h
@ -245,6 +245,15 @@ struct block
|
||||
|
||||
struct symbol *containing_function () const;
|
||||
|
||||
/* Return the static block associated with this block. Return NULL
|
||||
if block is a global block. */
|
||||
|
||||
const struct block *static_block () const;
|
||||
|
||||
/* Return the static block associated with block. */
|
||||
|
||||
const struct block *global_block () const;
|
||||
|
||||
/* Addresses in the executable code that are in this block. */
|
||||
|
||||
CORE_ADDR m_start;
|
||||
@ -404,10 +413,6 @@ extern const struct block *block_for_pc (CORE_ADDR);
|
||||
|
||||
extern const struct block *block_for_pc_sect (CORE_ADDR, struct obj_section *);
|
||||
|
||||
extern const struct block *block_static_block (const struct block *block);
|
||||
|
||||
extern const struct block *block_global_block (const struct block *block);
|
||||
|
||||
extern struct block *allocate_block (struct obstack *obstack);
|
||||
|
||||
extern struct block *allocate_global_block (struct obstack *obstack);
|
||||
|
@ -228,7 +228,7 @@ convert_symbol_sym (compile_c_instance *context, const char *identifier,
|
||||
|
||||
const struct block *static_block = nullptr;
|
||||
if (sym.block != nullptr)
|
||||
static_block = block_static_block (sym.block);
|
||||
static_block = sym.block->static_block ();
|
||||
/* STATIC_BLOCK is NULL if FOUND_BLOCK is the global block. */
|
||||
is_local_symbol = (sym.block != static_block && static_block != NULL);
|
||||
if (is_local_symbol)
|
||||
@ -239,7 +239,7 @@ convert_symbol_sym (compile_c_instance *context, const char *identifier,
|
||||
/* If the outer symbol is in the static block, we ignore it, as
|
||||
it cannot be referenced. */
|
||||
if (global_sym.symbol != NULL
|
||||
&& global_sym.block != block_static_block (global_sym.block))
|
||||
&& global_sym.block != global_sym.block->static_block ())
|
||||
{
|
||||
if (compile_debug)
|
||||
gdb_printf (gdb_stdlog,
|
||||
@ -617,7 +617,7 @@ generate_c_for_variable_locations (compile_instance *compiler,
|
||||
if (block == nullptr)
|
||||
return {};
|
||||
|
||||
const struct block *static_block = block_static_block (block);
|
||||
const struct block *static_block = block->static_block ();
|
||||
|
||||
/* If we're already in the static or global block, there is nothing
|
||||
to write. */
|
||||
|
@ -241,7 +241,7 @@ convert_symbol_sym (compile_cplus_instance *instance,
|
||||
|
||||
const struct block *static_block = nullptr;
|
||||
if (sym.block != nullptr)
|
||||
static_block = block_static_block (sym.block);
|
||||
static_block = sym.block->static_block ();
|
||||
/* STATIC_BLOCK is NULL if FOUND_BLOCK is the global block. */
|
||||
bool is_local_symbol = (sym.block != static_block && static_block != nullptr);
|
||||
if (is_local_symbol)
|
||||
@ -252,7 +252,7 @@ convert_symbol_sym (compile_cplus_instance *instance,
|
||||
/* If the outer symbol is in the static block, we ignore it, as
|
||||
it cannot be referenced. */
|
||||
if (global_sym.symbol != nullptr
|
||||
&& global_sym.block != block_static_block (global_sym.block))
|
||||
&& global_sym.block != global_sym.block->static_block ())
|
||||
{
|
||||
if (compile_debug)
|
||||
gdb_printf (gdb_stdlog,
|
||||
|
@ -141,7 +141,7 @@ cp_basic_lookup_symbol (const char *name, const struct block *block,
|
||||
but should be treated as local to a single file nonetheless.
|
||||
So we only search the current file's global block. */
|
||||
|
||||
const struct block *global_block = block_global_block (block);
|
||||
const struct block *global_block = block->global_block ();
|
||||
|
||||
if (global_block != NULL)
|
||||
{
|
||||
|
@ -1308,13 +1308,13 @@ add_symbol_overload_list_namespace (const char *func_name,
|
||||
|
||||
/* Look in the static block. */
|
||||
block = get_selected_block (0);
|
||||
block = block == nullptr ? nullptr : block_static_block (block);
|
||||
block = block == nullptr ? nullptr : block->static_block ();
|
||||
if (block != nullptr)
|
||||
{
|
||||
add_symbol_overload_list_block (name, block, overload_list);
|
||||
|
||||
/* Look in the global block. */
|
||||
block = block_global_block (block);
|
||||
block = block->global_block ();
|
||||
if (block)
|
||||
add_symbol_overload_list_block (name, block, overload_list);
|
||||
}
|
||||
@ -1458,10 +1458,10 @@ add_symbol_overload_list_qualified (const char *func_name,
|
||||
b = b->superblock ())
|
||||
add_symbol_overload_list_block (func_name, b, overload_list);
|
||||
|
||||
surrounding_static_block = block_static_block (get_selected_block (0));
|
||||
surrounding_static_block = get_selected_block (0);
|
||||
surrounding_static_block = (surrounding_static_block == nullptr
|
||||
? nullptr
|
||||
: block_static_block (surrounding_static_block));
|
||||
: surrounding_static_block->static_block ());
|
||||
|
||||
/* Go through the symtabs and check the externs and statics for
|
||||
symbols which match. */
|
||||
|
@ -460,8 +460,8 @@ get_hosting_frame (struct symbol *var, const struct block *var_block,
|
||||
tests that embed global/static symbols with null location lists.
|
||||
We want to get <optimized out> instead of <frame required> when evaluating
|
||||
them so return a frame instead of raising an error. */
|
||||
else if (var_block == block_global_block (var_block)
|
||||
|| var_block == block_static_block (var_block))
|
||||
else if (var_block == var_block->global_block ()
|
||||
|| var_block == var_block->static_block ())
|
||||
return frame;
|
||||
|
||||
/* We have to handle the "my_func::my_local_var" notation. This requires us
|
||||
@ -486,7 +486,7 @@ get_hosting_frame (struct symbol *var, const struct block *var_block,
|
||||
|
||||
/* If we failed to find the proper frame, fallback to the heuristic
|
||||
method below. */
|
||||
else if (frame_block == block_global_block (frame_block))
|
||||
else if (frame_block == frame_block->global_block ())
|
||||
{
|
||||
frame = NULL;
|
||||
break;
|
||||
|
@ -438,7 +438,7 @@ gdbscm_block_global_block (SCM self)
|
||||
const struct block *block = b_smob->block;
|
||||
const struct block *global_block;
|
||||
|
||||
global_block = block_global_block (block);
|
||||
global_block = block->global_block ();
|
||||
|
||||
return bkscm_scm_from_block (global_block, b_smob->objfile);
|
||||
}
|
||||
@ -458,7 +458,7 @@ gdbscm_block_static_block (SCM self)
|
||||
if (block->superblock () == NULL)
|
||||
return SCM_BOOL_F;
|
||||
|
||||
static_block = block_static_block (block);
|
||||
static_block = block->static_block ();
|
||||
|
||||
return bkscm_scm_from_block (static_block, b_smob->objfile);
|
||||
}
|
||||
|
@ -188,7 +188,7 @@ blpy_get_global_block (PyObject *self, void *closure)
|
||||
|
||||
BLPY_REQUIRE_VALID (self, block);
|
||||
|
||||
global_block = block_global_block (block);
|
||||
global_block = block->global_block ();
|
||||
|
||||
return block_to_block_object (global_block,
|
||||
self_obj->objfile);
|
||||
@ -210,7 +210,7 @@ blpy_get_static_block (PyObject *self, void *closure)
|
||||
if (block->superblock () == NULL)
|
||||
Py_RETURN_NONE;
|
||||
|
||||
static_block = block_static_block (block);
|
||||
static_block = block->static_block ();
|
||||
|
||||
return block_to_block_object (static_block, self_obj->objfile);
|
||||
}
|
||||
|
@ -421,7 +421,7 @@ munge_name_and_block (const char **name, const struct block **block)
|
||||
if (startswith (*name, "::"))
|
||||
{
|
||||
*name += 2;
|
||||
*block = block_static_block (*block);
|
||||
*block = (*block)->static_block ();
|
||||
}
|
||||
}
|
||||
|
||||
|
10
gdb/symtab.c
10
gdb/symtab.c
@ -2159,7 +2159,7 @@ lookup_local_symbol (const char *name,
|
||||
return {};
|
||||
|
||||
struct symbol *sym;
|
||||
const struct block *static_block = block_static_block (block);
|
||||
const struct block *static_block = block->static_block ();
|
||||
const char *scope = block->scope ();
|
||||
|
||||
/* Check if it's a global block. */
|
||||
@ -2463,7 +2463,7 @@ lookup_symbol_in_static_block (const char *name,
|
||||
if (block == nullptr)
|
||||
return {};
|
||||
|
||||
const struct block *static_block = block_static_block (block);
|
||||
const struct block *static_block = block->static_block ();
|
||||
struct symbol *sym;
|
||||
|
||||
if (static_block == NULL)
|
||||
@ -2598,7 +2598,7 @@ lookup_global_symbol (const char *name,
|
||||
global block first. This yields "more expected" behavior, and is
|
||||
needed to support 'FILENAME'::VARIABLE lookups. */
|
||||
const struct block *global_block
|
||||
= block == nullptr ? nullptr : block_global_block (block);
|
||||
= block == nullptr ? nullptr : block->global_block ();
|
||||
symbol *sym = NULL;
|
||||
if (global_block != nullptr)
|
||||
{
|
||||
@ -5831,8 +5831,8 @@ default_collect_symbol_completion_matches_break_on
|
||||
visible from current context. */
|
||||
|
||||
b = get_selected_block (0);
|
||||
surrounding_static_block = b == nullptr ? nullptr : block_static_block (b);
|
||||
surrounding_global_block = b == nullptr : nullptr : block_global_block (b);
|
||||
surrounding_static_block = b == nullptr ? nullptr : b->static_block ();
|
||||
surrounding_global_block = b == nullptr ? nullptr : b->global_block ();
|
||||
if (surrounding_static_block != NULL)
|
||||
while (b != surrounding_static_block)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user