diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2022-01-27 22:13:40 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2022-02-06 16:03:46 -0500 |
commit | f5abd8f234426bbe8ccd08c43e6ae7cbe635e042 (patch) | |
tree | e8a679b506617ed029ca5cb5bca710b9c33b11b5 | |
parent | 32177d6e39a2ed82fdafd7c41456c311b64d09fc (diff) | |
download | fsf-binutils-gdb-f5abd8f234426bbe8ccd08c43e6ae7cbe635e042.zip fsf-binutils-gdb-f5abd8f234426bbe8ccd08c43e6ae7cbe635e042.tar.gz fsf-binutils-gdb-f5abd8f234426bbe8ccd08c43e6ae7cbe635e042.tar.bz2 |
gdb: remote SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION macro
Add a getter for a whether a symbol is a C++ template function. Remove
the corresponding macro and adjust all callers.
Change-Id: I89abc2802a952b77b0e0eb73a25c2306cb8e8bcc
-rw-r--r-- | gdb/cp-namespace.c | 2 | ||||
-rw-r--r-- | gdb/symtab.h | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c index 6130381..8fb2f71 100644 --- a/gdb/cp-namespace.c +++ b/gdb/cp-namespace.c @@ -519,7 +519,7 @@ cp_lookup_symbol_imports_or_template (const char *scope, if (function != NULL && function->language () == language_cplus) { /* Search the function's template parameters. */ - if (SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION (function)) + if (function->is_cplus_template_function ()) { struct template_symbol *templ = (struct template_symbol *) function; diff --git a/gdb/symtab.h b/gdb/symtab.h index 9b7d7e3..a861451 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -1198,6 +1198,11 @@ struct symbol : public general_symbol_info, public allocate_on_obstack m_is_inlined = is_inlined; } + bool is_cplus_template_function () const + { + return this->subclass == SYMBOL_TEMPLATE; + } + /* Data type of value */ struct type *type = nullptr; @@ -1300,8 +1305,6 @@ struct block_symbol /* Note: There is no accessor macro for symbol.owner because it is "private". */ -#define SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION(symbol) \ - (((symbol)->subclass) == SYMBOL_TEMPLATE) #define SYMBOL_TYPE(symbol) (symbol)->type #define SYMBOL_LINE(symbol) (symbol)->line #define SYMBOL_COMPUTED_OPS(symbol) ((symbol)->impl ().ops_computed) @@ -1342,7 +1345,7 @@ extern void symbol_set_symtab (struct symbol *symbol, struct symtab *symtab); /* An instance of this type is used to represent a C++ template function. A symbol is really of this type iff - SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION is true. */ + symbol::is_cplus_template_function is true. */ struct template_symbol : public symbol { |