This is the mail archive of the gdb-patches@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]

[rfc][14/37] Eliminate builtin_type_ macros: Implicit dereferencing of references


Hello,

when implicitly dereferencing a reference, the valprint routines
manually construct a pointer type.  This is superfluous, as the
unpack_pointer routine already handles references fine.

Bye,
Ulrich

ChangeLog:

	* ada-valprint.c (ada_val_print_1): When implicitly dereferencing
	a reference type, pass the reference type directly to unpack_pointer.
	* c-valprint.c (c_val_print): Likewise.
	* f-valprint.c (f_val_print): Likewise.
	* m2-valprint.c (print_variable_at_address, m2_val_print): Likewise.
	* p-valprint.c (pascal_val_print): Likewise.

Index: gdb-head/gdb/ada-valprint.c
===================================================================
--- gdb-head.orig/gdb/ada-valprint.c
+++ gdb-head/gdb/ada-valprint.c
@@ -891,9 +891,7 @@ ada_val_print_1 (struct type *type, cons
       
       if (TYPE_CODE (elttype) != TYPE_CODE_UNDEF)
         {
-          LONGEST deref_val_int = (LONGEST)
-            unpack_pointer (lookup_pointer_type (builtin_type_void),
-                            valaddr);
+          LONGEST deref_val_int = (LONGEST) unpack_pointer (type, valaddr);
           if (deref_val_int != 0)
             {
               struct value *deref_val =
Index: gdb-head/gdb/c-valprint.c
===================================================================
--- gdb-head.orig/gdb/c-valprint.c
+++ gdb-head/gdb/c-valprint.c
@@ -310,8 +310,7 @@ c_val_print (struct type *type, const gd
 	      struct value *deref_val =
 	      value_at
 	      (TYPE_TARGET_TYPE (type),
-	       unpack_pointer (lookup_pointer_type (builtin_type_void),
-			       valaddr + embedded_offset));
+	       unpack_pointer (type, valaddr + embedded_offset));
 	      common_val_print (deref_val, stream, format, deref_ref,
 				recurse, pretty, current_language);
 	    }
Index: gdb-head/gdb/f-valprint.c
===================================================================
--- gdb-head.orig/gdb/f-valprint.c
+++ gdb-head/gdb/f-valprint.c
@@ -444,8 +444,7 @@ f_val_print (struct type *type, const gd
 	      struct value *deref_val =
 	      value_at
 	      (TYPE_TARGET_TYPE (type),
-	       unpack_pointer (lookup_pointer_type (builtin_type_void),
-			       valaddr + embedded_offset));
+	       unpack_pointer (type, valaddr + embedded_offset));
 	      common_val_print (deref_val, stream, format, deref_ref, recurse,
 				pretty, current_language);
 	    }
Index: gdb-head/gdb/m2-valprint.c
===================================================================
--- gdb-head.orig/gdb/m2-valprint.c
+++ gdb-head/gdb/m2-valprint.c
@@ -258,10 +258,7 @@ print_variable_at_address (struct type *
   if (TYPE_CODE (elttype) != TYPE_CODE_UNDEF)
     {
       struct value *deref_val =
-	value_at
-	(TYPE_TARGET_TYPE (type),
-	 unpack_pointer (lookup_pointer_type (builtin_type_void),
-			 valaddr));
+	value_at (TYPE_TARGET_TYPE (type), unpack_pointer (type, valaddr));
       common_val_print (deref_val, stream, format, deref_ref,
 			recurse, pretty, current_language);
     }
@@ -420,8 +417,7 @@ m2_val_print (struct type *type, const g
 	      struct value *deref_val =
 		value_at
 		(TYPE_TARGET_TYPE (type),
-		 unpack_pointer (lookup_pointer_type (builtin_type_void),
-				 valaddr + embedded_offset));
+		 unpack_pointer (type, valaddr + embedded_offset));
 	      common_val_print (deref_val, stream, format, deref_ref,
 				recurse, pretty, current_language);
 	    }
Index: gdb-head/gdb/p-valprint.c
===================================================================
--- gdb-head.orig/gdb/p-valprint.c
+++ gdb-head/gdb/p-valprint.c
@@ -267,8 +267,7 @@ pascal_val_print (struct type *type, con
 	      struct value *deref_val =
 	      value_at
 	      (TYPE_TARGET_TYPE (type),
-	       unpack_pointer (lookup_pointer_type (builtin_type_void),
-			       valaddr + embedded_offset));
+	       unpack_pointer (type, valaddr + embedded_offset));
 	      common_val_print (deref_val, stream, format, deref_ref,
 				recurse + 1, pretty, current_language);
 	    }

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


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