diff options
author | Tom Tromey <tom@tromey.com> | 2017-11-17 11:55:38 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-11-17 14:34:14 -0700 |
commit | 68e745e38edebd2a12d60ef7b5774066db3f1c40 (patch) | |
tree | b3ac1b1b134242ed775ec16b2d16272412c7e295 | |
parent | 71a3c36949407eafea744bf00334c4e0c136f927 (diff) |
Make template_symbol derive from symbol
This changes template_symbol to derive from symbol, which seems a bit
cleaner; and also more consistent with rust_vtable_symbol.
2017-11-17 Tom Tromey <tom@tromey.com>
* dwarf2read.c (read_func_scope): Update.
* symtab.h (struct template_symbol): Derive from symbol.
<base>: Remove.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 2 | ||||
-rw-r--r-- | gdb/symtab.c | 2 | ||||
-rw-r--r-- | gdb/symtab.h | 11 |
4 files changed, 11 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b7ee8693a9..5aecd43182 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2017-11-17 Tom Tromey <tom@tromey.com> + * dwarf2read.c (read_func_scope): Update. + * symtab.h (struct template_symbol): Derive from symbol. + <base>: Remove. + +2017-11-17 Tom Tromey <tom@tromey.com> + * symtab.h (struct symbol) <is_rust_vtable>: New member. (struct rust_vtable_symbol): New. (find_symbol_at_address): Declare. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 828334522f..86b699671a 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -12263,7 +12263,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) || child_die->tag == DW_TAG_template_value_param) { templ_func = allocate_template_symbol (objfile); - templ_func->base.is_cplus_template_function = 1; + templ_func->is_cplus_template_function = 1; break; } } diff --git a/gdb/symtab.c b/gdb/symtab.c index 38bc7136c2..3d5936774d 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -5800,7 +5800,7 @@ allocate_template_symbol (struct objfile *objfile) struct template_symbol *result; result = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct template_symbol); - initialize_objfile_symbol_1 (&result->base); + initialize_objfile_symbol_1 (result); return result; } diff --git a/gdb/symtab.h b/gdb/symtab.h index 9466f29d0f..83d0ff2569 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -1167,16 +1167,11 @@ extern struct symtab *symbol_symtab (const struct symbol *symbol); extern void symbol_set_symtab (struct symbol *symbol, struct symtab *symtab); /* An instance of this type is used to represent a C++ template - function. It includes a "struct symbol" as a kind of base class; - users downcast to "struct template_symbol *" when needed. A symbol - is really of this type iff SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION is - true. */ + function. A symbol is really of this type iff + SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION is true. */ -struct template_symbol +struct template_symbol : public symbol { - /* The base class. */ - struct symbol base; - /* The number of template arguments. */ int n_template_arguments; |