This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Make dwarf_stack_value::in_stack_memory a bool


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=690098826e36cbadf618e15eed5f6ebf606cbf74

commit 690098826e36cbadf618e15eed5f6ebf606cbf74
Author: Simon Marchi <simon.marchi@ericsson.com>
Date:   Thu Sep 14 16:13:33 2017 +0200

    Make dwarf_stack_value::in_stack_memory a bool
    
    Replace int with bool, because that's what it is.
    
    gdb/ChangeLog:
    
    	* dwarf2expr.h (dwarf_expr_piece) <v.mem.in_stack_memory>:
    	Change type to bool.
    	(dwarf_stack_value) <in_stack_memory>: Likewise.
    	(dwarf_expr_context) <push_address>: Change parameter type to
    	bool.
    	<fetch_in_stack_memory>: Change return type to bool.
    	<push>: Change parameter type to bool.
    	* dwarf2expr.c (dwarf_expr_context::push): Change parameter type
    	to bool.
    	(dwarf_expr_context::push_address): Likewise.
    	(dwarf_expr_context::fetch_in_stack_memory): Change return type
    	to bool.
    	(dwarf_expr_context::execute_stack_op): Adjust.
    	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Adjust.

Diff:
---
 gdb/ChangeLog    | 17 +++++++++++++++++
 gdb/dwarf2expr.c | 16 ++++++++--------
 gdb/dwarf2expr.h | 19 +++++++++----------
 gdb/dwarf2loc.c  |  2 +-
 4 files changed, 35 insertions(+), 19 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0f19d4a..15bf1ae 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,22 @@
 2017-09-14  Simon Marchi  <simon.marchi@ericsson.com>
 
+	* dwarf2expr.h (dwarf_expr_piece) <v.mem.in_stack_memory>:
+	Change type to bool.
+	(dwarf_stack_value) <in_stack_memory>: Likewise.
+	(dwarf_expr_context) <push_address>: Change parameter type to
+	bool.
+	<fetch_in_stack_memory>: Change return type to bool.
+	<push>: Change parameter type to bool.
+	* dwarf2expr.c (dwarf_expr_context::push): Change parameter type
+	to bool.
+	(dwarf_expr_context::push_address): Likewise.
+	(dwarf_expr_context::fetch_in_stack_memory): Change return type
+	to bool.
+	(dwarf_expr_context::execute_stack_op): Adjust.
+	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Adjust.
+
+2017-09-14  Simon Marchi  <simon.marchi@ericsson.com>
+
 	* dwarf2expr.h (struct dwarf_expr_piece): Move up.
 	(struct dwarf_expr_context) <n_pieces>: Remove.
 	<pieces>: Change type to std::vector.
diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c
index 61a1e9e..1dfbc0f 100644
--- a/gdb/dwarf2expr.c
+++ b/gdb/dwarf2expr.c
@@ -130,7 +130,7 @@ dwarf_expr_context::grow_stack (size_t need)
 /* Push VALUE onto the stack.  */
 
 void
-dwarf_expr_context::push (struct value *value, int in_stack_memory)
+dwarf_expr_context::push (struct value *value, bool in_stack_memory)
 {
   struct dwarf_stack_value *v;
 
@@ -143,7 +143,7 @@ dwarf_expr_context::push (struct value *value, int in_stack_memory)
 /* Push VALUE onto the stack.  */
 
 void
-dwarf_expr_context::push_address (CORE_ADDR value, int in_stack_memory)
+dwarf_expr_context::push_address (CORE_ADDR value, bool in_stack_memory)
 {
   push (value_from_ulongest (address_type (), value), in_stack_memory);
 }
@@ -260,7 +260,7 @@ dwarf_expr_context::fetch_address (int n)
 
 /* Retrieve the in_stack_memory flag of the N'th item on the stack.  */
 
-int
+bool
 dwarf_expr_context::fetch_in_stack_memory (int n)
 {
   if (this->stack_len <= n)
@@ -599,12 +599,12 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
       enum dwarf_location_atom op = (enum dwarf_location_atom) *op_ptr++;
       ULONGEST result;
       /* Assume the value is not in stack memory.
-	 Code that knows otherwise sets this to 1.
+	 Code that knows otherwise sets this to true.
 	 Some arithmetic on stack addresses can probably be assumed to still
 	 be a stack address, but we skip this complication for now.
 	 This is just an optimization, so it's always ok to punt
-	 and leave this as 0.  */
-      int in_stack_memory = 0;
+	 and leave this as false.  */
+      bool in_stack_memory = false;
       uint64_t uoffset, reg;
       int64_t offset;
       struct value *result_val = NULL;
@@ -897,7 +897,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
 		       "base using explicit value operator"));
 	    result = result + offset;
 	    result_val = value_from_ulongest (address_type, result);
-	    in_stack_memory = 1;
+	    in_stack_memory = true;
 	    this->stack_len = before_stack_len;
 	    this->location = DWARF_VALUE_MEMORY;
 	  }
@@ -1187,7 +1187,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
 	case DW_OP_call_frame_cfa:
 	  result = this->get_frame_cfa ();
 	  result_val = value_from_ulongest (address_type, result);
-	  in_stack_memory = 1;
+	  in_stack_memory = true;
 	  break;
 
 	case DW_OP_GNU_push_tls_address:
diff --git a/gdb/dwarf2expr.h b/gdb/dwarf2expr.h
index 39bcea3..a6aec28 100644
--- a/gdb/dwarf2expr.h
+++ b/gdb/dwarf2expr.h
@@ -62,7 +62,7 @@ struct dwarf_expr_piece
       CORE_ADDR addr;
       /* Non-zero if the piece is known to be in memory and on
 	 the program's stack.  */
-      int in_stack_memory;
+      bool in_stack_memory;
     } mem;
 
     /* The piece's register number, for DWARF_VALUE_REGISTER pieces.  */
@@ -102,12 +102,11 @@ struct dwarf_stack_value
 {
   struct value *value;
 
-  /* Non-zero if the piece is in memory and is known to be
-     on the program's stack.  It is always ok to set this to zero.
-     This is used, for example, to optimize memory access from the target.
-     It can vastly speed up backtraces on long latency connections when
-     "set stack-cache on".  */
-  int in_stack_memory;
+  /* True if the piece is in memory and is known to be on the program's stack.
+     It is always ok to set this to zero.  This is used, for example, to
+     optimize memory access from the target.  It can vastly speed up backtraces
+     on long latency connections when "set stack-cache on".  */
+  bool in_stack_memory;
 };
 
 /* The expression evaluator works with a dwarf_expr_context, describing
@@ -117,11 +116,11 @@ struct dwarf_expr_context
   dwarf_expr_context ();
   virtual ~dwarf_expr_context ();
 
-  void push_address (CORE_ADDR value, int in_stack_memory);
+  void push_address (CORE_ADDR value, bool in_stack_memory);
   void eval (const gdb_byte *addr, size_t len);
   struct value *fetch (int n);
   CORE_ADDR fetch_address (int n);
-  int fetch_in_stack_memory (int n);
+  bool fetch_in_stack_memory (int n);
 
   /* The stack of values, allocated with xmalloc.  */
   struct dwarf_stack_value *stack;
@@ -251,7 +250,7 @@ private:
 
   struct type *address_type () const;
   void grow_stack (size_t need);
-  void push (struct value *value, int in_stack_memory);
+  void push (struct value *value, bool in_stack_memory);
   int stack_empty_p () const;
   void add_piece (ULONGEST size, ULONGEST offset);
   void execute_stack_op (const gdb_byte *op_ptr, const gdb_byte *op_end);
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index cfbea3c..3c2f6aa 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -2441,7 +2441,7 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame,
 	  {
 	    struct type *ptr_type;
 	    CORE_ADDR address = ctx.fetch_address (0);
-	    int in_stack_memory = ctx.fetch_in_stack_memory (0);
+	    bool in_stack_memory = ctx.fetch_in_stack_memory (0);
 
 	    /* DW_OP_deref_size (and possibly other operations too) may
 	       create a pointer instead of an address.  Ideally, the


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]