gdb: fix value.c build on 32-bits
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 27 Oct 2021 13:38:51 +0000 (09:38 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Wed, 27 Oct 2021 13:41:59 +0000 (09:41 -0400)
When building on ARM (32-bits), we errors like this:

    /home/smarchi/src/binutils-gdb/gdb/value.c: In function 'gdb::array_view<const unsigned char> value_contents_for_printing(value*)':
    /home/smarchi/src/binutils-gdb/gdb/value.c:1252:35: error: narrowing conversion of 'length' from 'ULONGEST' {aka 'long long unsigned int'} to 'size_t' {aka 'unsigned int'} [-Werror=narrowing]
     1252 |   return {value->contents.get (), length};
          |                                   ^~~~~~

Fix that by using gdb::make_array_view, which does the appropriate
conversion.

Change-Id: I7d6f2e75d7440d248b8fb18f8272ee92954b404d

gdb/value.c

index 42ce80416f143d2b229e14fe9dfd320aa438c4d8..a0ce3a796d0c786f405ebb88719ec9df31bb534f 100644 (file)
@@ -1155,7 +1155,8 @@ value_contents_raw (struct value *value)
   allocate_value_contents (value);
 
   ULONGEST length = TYPE_LENGTH (value_type (value));
-  return {value->contents.get () + value->embedded_offset * unit_size, length};
+  return gdb::make_array_view
+    (value->contents.get () + value->embedded_offset * unit_size, length);
 }
 
 gdb::array_view<gdb_byte>
@@ -1164,7 +1165,7 @@ value_contents_all_raw (struct value *value)
   allocate_value_contents (value);
 
   ULONGEST length = TYPE_LENGTH (value_type (value));
-  return {value->contents.get (), length};
+  return gdb::make_array_view (value->contents.get (), length);
 }
 
 struct type *
@@ -1249,7 +1250,7 @@ value_contents_for_printing (struct value *value)
     value_fetch_lazy (value);
 
   ULONGEST length = TYPE_LENGTH (value_type (value));
-  return {value->contents.get (), length};
+  return gdb::make_array_view (value->contents.get (), length);
 }
 
 gdb::array_view<const gdb_byte>
@@ -1258,7 +1259,7 @@ value_contents_for_printing_const (const struct value *value)
   gdb_assert (!value->lazy);
 
   ULONGEST length = TYPE_LENGTH (value_type (value));
-  return {value->contents.get (), length};
+  return gdb::make_array_view (value->contents.get (), length);
 }
 
 gdb::array_view<const gdb_byte>