gdb: remote SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION macro
authorSimon Marchi <simon.marchi@efficios.com>
Fri, 28 Jan 2022 03:13:40 +0000 (22:13 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Sun, 6 Feb 2022 21:03:46 +0000 (16:03 -0500)
Add a getter for a whether a symbol is a C++ template function.  Remove
the corresponding macro and adjust all callers.

Change-Id: I89abc2802a952b77b0e0eb73a25c2306cb8e8bcc

gdb/cp-namespace.c
gdb/symtab.h

index 6130381fdd6680a0760b61d8b41fb806957b61a2..8fb2f71b46cc1dbd1887095ce174f645c9f65459 100644 (file)
@@ -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;
index 9b7d7e35c97243fa0a666c36908971b11e392fad..a86145198fdca0b4e94fca62cb787031f8c20de5 100644 (file)
@@ -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
 {