aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2022-01-27 22:13:40 -0500
committerSimon Marchi <simon.marchi@efficios.com>2022-02-06 16:03:46 -0500
commitf5abd8f234426bbe8ccd08c43e6ae7cbe635e042 (patch)
treee8a679b506617ed029ca5cb5bca710b9c33b11b5
parent32177d6e39a2ed82fdafd7c41456c311b64d09fc (diff)
downloadfsf-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.c2
-rw-r--r--gdb/symtab.h9
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
{