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]

Re: [PATCH v3] Expand bitpos and type.length to LONGEST and ULONGEST


@@ -7968,7 +7968,7 @@ remote_insert_watchpoint (CORE_ADDR addr, int len, int type,
[...]
-  xsnprintf (p, endbuf - p, ",%x", len);
+  xsnprintf (p, endbuf - p, ",%s", int_string (len, 16, 1, 0, 0));
[...]
@@ -8012,7 +8012,7 @@ remote_remove_watchpoint (CORE_ADDR addr, int len, int type,
[...]
-  xsnprintf (p, endbuf - p, ",%x", len);
+  xsnprintf (p, endbuf - p, ",%s", int_string (len, 16, 1, 0, 0));

int_string does not support IS_SIGNED (1) for RADIX 16 anyway.
So I would simplify it just by using:

+  xsnprintf (p, endbuf - p, ",%s", phex_nz (len, 8));


--- a/gdb/rx-tdep.c
+++ b/gdb/rx-tdep.c
@@ -710,10 +710,10 @@ rx_return_value (struct gdbarch *gdbarch,
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST valtype_len = TYPE_LENGTH (valtype);
 
-  if (TYPE_LENGTH (valtype) > 16
+  if (valtype_len > 16
       || ((TYPE_CODE (valtype) == TYPE_CODE_STRUCT
 	   || TYPE_CODE (valtype) == TYPE_CODE_UNION)
-	  && TYPE_LENGTH (valtype) % 4 != 0))
+	  && valtype_len % 4 != 0))
     return RETURN_VALUE_STRUCT_CONVENTION;
 
This seems to be an unrelated cleanup, just drop it.


@@ -1763,9 +1764,10 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
         {
 	  struct value *arg = args[i];
 	  struct type *arg_type = check_typedef (value_type (arg));
-	  fprintf_unfiltered (gdb_stdlog, "%2d: %s %3d ", i,
+	  fprintf_unfiltered (gdb_stdlog, "%2d: %s %s ", i,
 			      host_address_to_string (arg),
-			      TYPE_LENGTH (arg_type));
+			      int_string (TYPE_LENGTH (arg_type), 10, 0, 3,
+					  0));

It is sure just for debugging but this is an output change due to zeroes
padding.  What about putting there instead:

const char *arg_type_len_s = pulongest (TYPE_LENGTH (arg_type));

+	  fprintf_unfiltered (gdb_stdlog, "%2d: %s %s ", i,
[...]
                              arg_type_len_s);


Used:
rm -rf splint/;mkdir -p splint/bits;touch splint/bits/confname.h;for i in `cat files`;do mkdir -p splint/`dirname $i`;splint +posixlib +gnuextensions -Isplint -exportlocal -DTUI -I. -Icommon -I../include -I../bfd -I../libdecnumber -I../opcodes -I.. -I/usr/include/python2.7 $i &>splint/$i.out;done
find splint-bitpos/ -type f|sort|xargs cat|perl -lpe 's/^\s*(\S*?\.[ch]:\d+:\d+):/LOC $1\n/' >splint-bitpos.out
diff -I"^LOC " splint-clean.out splint-bitpos.out|vim -

and got for example:
-LOC ada-lang.c:669:33
+LOC ada-lang.c:670:33
  Function umax_of_size expects arg 1 to be int gets unsigned
-                      int: (t)->length
+                      long int: (t)->length

It has 26000 lines this way, I will try to reduce the diff size somehow.


Thanks,
Jan


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