gdbtypes: return value from get_unsigned_type_max
authorGeorge Barrett <bob@bob131.so>
Thu, 29 Jul 2021 15:12:03 +0000 (01:12 +1000)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 29 Jul 2021 16:54:14 +0000 (12:54 -0400)
Changes the signature of get_unsigned_type_max to return the computed
value rather than returning void and writing the value into a pointer
passed by the caller.

gdb/ChangeLog:

2021-07-30  George Barrett  <bob@bob131.so>

* gdbtypes.h (get_unsigned_type_max): Change signature to
return the result instead of accepting a pointer argument in
which to store the result.
* gdbtypes.c (get_unsigned_type_max): Likewise.
* guile/scm-math.c (vlscm_convert_typed_number): Update caller
of get_unsigned_type_max.
(vlscm_integer_fits_p): Likewise.

Change-Id: Ibb1bf0c0fa181fac7853147dfde082a7d1ae2323

gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/guile/scm-math.c

index 1a261719422a0c9f4480956e85edba292636d53c..609de23ee44a4c7a87955da8d3b4f8029b5113d7 100644 (file)
@@ -1891,11 +1891,10 @@ lookup_struct_elt_type (struct type *type, const char *name, int noerr)
     return NULL;
 }
 
-/* Store in *MAX the largest number representable by unsigned integer type
-   TYPE.  */
+/* Return the largest number representable by unsigned integer type TYPE.  */
 
-void
-get_unsigned_type_max (struct type *type, ULONGEST *max)
+ULONGEST
+get_unsigned_type_max (struct type *type)
 {
   unsigned int n;
 
@@ -1905,7 +1904,7 @@ get_unsigned_type_max (struct type *type, ULONGEST *max)
 
   /* Written this way to avoid overflow.  */
   n = TYPE_LENGTH (type) * TARGET_CHAR_BIT;
-  *max = ((((ULONGEST) 1 << (n - 1)) - 1) << 1) | 1;
+  return ((((ULONGEST) 1 << (n - 1)) - 1) << 1) | 1;
 }
 
 /* Store in *MIN, *MAX the smallest and largest numbers representable by
index d754f2fcd36dc2cc4f3d20912436611643bdfbbd..b47644b210eeac7fe32c5f8c562050717f622779 100644 (file)
@@ -2519,7 +2519,7 @@ extern struct type *lookup_unsigned_typename (const struct language_defn *,
 extern struct type *lookup_signed_typename (const struct language_defn *,
                                            const char *);
 
-extern void get_unsigned_type_max (struct type *, ULONGEST *);
+extern ULONGEST get_unsigned_type_max (struct type *);
 
 extern void get_signed_type_minmax (struct type *, LONGEST *, LONGEST *);
 
index d9fd67181966346f1dbead57ed3df6e89c0388b8..15b7247c78028da6859fa14e3ddec402cbcc10f3 100644 (file)
@@ -529,9 +529,7 @@ vlscm_convert_typed_number (const char *func_name, int obj_arg_pos, SCM obj,
     {
       if (type->is_unsigned ())
        {
-         ULONGEST max;
-
-         get_unsigned_type_max (type, &max);
+         ULONGEST max = get_unsigned_type_max (type);
          if (!scm_is_unsigned_integer (obj, 0, max))
            {
              *except_scmp
@@ -575,12 +573,11 @@ vlscm_integer_fits_p (SCM obj, struct type *type)
 {
   if (type->is_unsigned ())
     {
-      ULONGEST max;
-
       /* If scm_is_unsigned_integer can't work with this type, just punt.  */
       if (TYPE_LENGTH (type) > sizeof (uintmax_t))
        return 0;
-      get_unsigned_type_max (type, &max);
+
+      ULONGEST max = get_unsigned_type_max (type);
       return scm_is_unsigned_integer (obj, 0, max);
     }
   else