Make dwarf_expr_context's destructor virtual

Ref: https://sourceware.org/ml/gdb-patches/2016-10/msg00662.html

 $ make WERROR_CFLAGS="-Wnon-virtual-dtor" dwarf2expr.o
 ...
 In file included from .../src/gdb/dwarf2expr.c:28:0:
 .../src/gdb/dwarf2expr.h:68:8: warning: ‘struct dwarf_expr_context’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
  struct dwarf_expr_context
	 ^~~~~~~~~~~~~~~~~~

Happens to not be a problem in practice currently because concrete
subclasses are allocated on the stack.  I.e., we don't ever delete
objects of types that derive from dwarf_expr_context through pointers
to dwarf_expr_context.

gdb/ChangeLog:
2016-10-25  Pedro Alves  <palves@redhat.com>

	* dwarf2expr.h (struct dwarf_expr_context) <~dwarf_expr_context>:
	Make virtual.
This commit is contained in:
Pedro Alves 2016-10-25 14:32:35 +01:00
parent b196bc4cb4
commit beb18c865c
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2016-10-25 Pedro Alves <palves@redhat.com>
* dwarf2expr.h (struct dwarf_expr_context) <~dwarf_expr_context>:
Make virtual.
2016-10-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR build/20712

View File

@ -68,7 +68,7 @@ struct dwarf_stack_value
struct dwarf_expr_context
{
dwarf_expr_context ();
~dwarf_expr_context ();
virtual ~dwarf_expr_context ();
void push_address (CORE_ADDR value, int in_stack_memory);
void eval (const gdb_byte *addr, size_t len);