diff options
author | Tom Tromey <tom@tromey.com> | 2023-01-19 17:37:15 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-02-19 12:51:05 -0700 |
commit | 683aecac8c37c11d63203c96455a3d9ecf50bbe9 (patch) | |
tree | b6cce224a94fc1f196666c310bfc921705324ca6 | |
parent | f52688890edd7c587ec11cf1d565f235e41a6c43 (diff) | |
download | gdb-683aecac8c37c11d63203c96455a3d9ecf50bbe9.zip gdb-683aecac8c37c11d63203c96455a3d9ecf50bbe9.tar.gz gdb-683aecac8c37c11d63203c96455a3d9ecf50bbe9.tar.bz2 |
Don't allow NULL as an argument to block_scope
block_scope has special behavior when the block is NULL.
Remove this and patch up the callers instead.
-rw-r--r-- | gdb/d-namespace.c | 2 | ||||
-rw-r--r-- | gdb/rust-lang.h | 5 | ||||
-rw-r--r-- | gdb/rust-parse.c | 4 |
3 files changed, 6 insertions, 5 deletions
diff --git a/gdb/d-namespace.c b/gdb/d-namespace.c index b618403..2978e5f 100644 --- a/gdb/d-namespace.c +++ b/gdb/d-namespace.c @@ -511,7 +511,7 @@ d_lookup_symbol_nonlocal (const struct language_defn *langdef, const domain_enum domain) { struct block_symbol sym; - const char *scope = block_scope (block); + const char *scope = block == nullptr ? "" : block_scope (block); sym = lookup_module_scope (langdef, name, block, domain, scope, 0); if (sym.symbol != NULL) diff --git a/gdb/rust-lang.h b/gdb/rust-lang.h index 89e0355..497342d 100644 --- a/gdb/rust-lang.h +++ b/gdb/rust-lang.h @@ -148,17 +148,16 @@ public: { struct block_symbol result = {}; + const char *scope = block == nullptr ? "" : block_scope (block); symbol_lookup_debug_printf ("rust_lookup_symbol_non_local (%s, %s (scope %s), %s)", - name, host_address_to_string (block), block_scope (block), + name, host_address_to_string (block), scope, domain_name (domain)); /* Look up bare names in the block's scope. */ std::string scopedname; if (name[cp_find_first_component (name)] == '\0') { - const char *scope = block_scope (block); - if (scope[0] != '\0') { scopedname = std::string (scope) + "::" + name; diff --git a/gdb/rust-parse.c b/gdb/rust-parse.c index 489be4b..72b843e 100644 --- a/gdb/rust-parse.c +++ b/gdb/rust-parse.c @@ -373,7 +373,9 @@ rust_parser::crate_name (const std::string &name) std::string rust_parser::super_name (const std::string &ident, unsigned int n_supers) { - const char *scope = block_scope (pstate->expression_context_block); + const char *scope = ""; + if (pstate->expression_context_block != nullptr) + scope = block_scope (pstate->expression_context_block); int offset; if (scope[0] == '\0') |