Move read_mem to dwarf_expr_context
authorZoran Zaric <zoran.zaric@amd.com>
Tue, 15 Sep 2020 10:37:19 +0000 (11:37 +0100)
committerZoran Zaric <zoran.zaric@amd.com>
Thu, 5 Aug 2021 15:39:59 +0000 (16:39 +0100)
Following the idea of merging the evaluators, the read_mem method can
be moved from dwarf_expr_executor and dwarf_evaluate_loc_desc classes
to their base class dwarf_expr_context.

gdb/ChangeLog:

* dwarf2/expr.c (dwarf_expr_context::read_mem): Move from
dwarf_evaluate_loc_desc.
* dwarf2/frame.c (dwarf_expr_executor::read_mem): Remove
method.
* dwarf2/loc.c (dwarf_evaluate_loc_desc::read_mem): Move to
dwarf_expr_context.

gdb/dwarf2/expr.c
gdb/dwarf2/expr.h
gdb/dwarf2/frame.c
gdb/dwarf2/loc.c

index b13de9879082386e9750b1a57daeaee92c8c61de..dac693d2026d4dc816eccf482bef22791eca0537 100644 (file)
@@ -249,6 +249,15 @@ dwarf_expr_context::dwarf_call (cu_offset die_cu_off)
   this->eval (block.data, block.size);
 }
 
+/* See expr.h.  */
+
+void
+dwarf_expr_context::read_mem (gdb_byte *buf, CORE_ADDR addr,
+                             size_t length)
+{
+  read_memory (addr, buf, length);
+}
+
 /* Require that TYPE be an integral type; throw an exception if not.  */
 
 static void
index d10bf9c78f3cdd9b1f4a31165008970b866cfeab..3a085fd286e46bbef964c183bfa80444815689b2 100644 (file)
@@ -192,7 +192,7 @@ struct dwarf_expr_context
   CORE_ADDR obj_address = 0;
 
   /* Read LENGTH bytes at ADDR into BUF.  */
-  virtual void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t length) = 0;
+  virtual void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t length);
 
   /* Push on DWARF stack an entry evaluated for DW_TAG_call_site's
      parameter matching KIND and KIND_U at the caller of specified BATON.
index 37d3a4056fba67c1cf8a549193542785a22b1009..76a546f0f5a0075ee88ed279310140c5b59f1147 100644 (file)
@@ -232,11 +232,6 @@ public:
     : dwarf_expr_context (per_objfile)
   {}
 
-  void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) override
-  {
-    read_memory (addr, buf, len);
-  }
-
   void push_dwarf_reg_entry_value (enum call_site_parameter_kind kind,
                                   union call_site_parameter_u kind_u,
                                   int deref_size) override
index 217d74c08ef64a5524bc1127174dbf22ae7eb241..a23c67677289c58e9a72ab52b24976a994c720cc 100644 (file)
@@ -728,13 +728,6 @@ public:
 
     this->eval (data_src, size);
   }
-
-  /* Read memory at ADDR (length LEN) into BUF.  */
-
-  void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t len) override
-  {
-    read_memory (addr, buf, len);
-  }
 };
 
 /* See dwarf2loc.h.  */