* [PATCH] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd
@ 2018-12-04 18:16 Pedro Alves
2018-12-04 18:59 ` Simon Marchi
0 siblings, 1 reply; 2+ messages in thread
From: Pedro Alves @ 2018-12-04 18:16 UTC (permalink / raw)
To: gdb-patches
Building for x86_64/-m32 with --enable-64-bit-bfd, compilation fails
with:
src/gdb/dwarf2read.c: In instantiation of âgdb::array_view<const unsigned char> get_gdb_index_contents_from_section(objfile*, T*) [with T = dwarf2_per_objfile]â:
src/gdb/dwarf2read.c:6266:54: required from here
src/gdb/dwarf2read.c:6192:37: error: narrowing conversion of âsection->dwarf2_section_info::sizeâ from âbfd_size_type {aka long long unsigned int}â to âsize_t {aka unsigned int}â inside { } [-Werror=narrowing]
return {section->buffer, section->size};
~~~~~~~~~^~~~
This fixes it.
gdb/ChangeLog:
2018-12-04 Pedro Alves <palves@redhat.com>
* dwarf2read.c (get_gdb_index_contents_from_section): Use
gdb::make_array_view.
---
gdb/dwarf2read.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 8bfbd693940..30bc101f11c 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -6189,7 +6189,13 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner)
dwarf2_read_section (obj, section);
- return {section->buffer, section->size};
+ /* dwarf2_section_info::size is a bfd_size_type, while
+ gdb::array_view works with size_t. On 32-bit hosts, with
+ --enable-64-bit-bfd, bfd_size_type is a 64-bit type, while size_t
+ is 32-bit. So we need an explicit narrowing conversion here.
+ This is fine, because it's impossible to allocate or mmap an
+ array/buffer larger than what size_t can represent. */
+ return gdb::make_array_view (section->buffer, section->size);
}
/* Lookup the index cache for the contents of the index associated to
--
2.14.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd
2018-12-04 18:16 [PATCH] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd Pedro Alves
@ 2018-12-04 18:59 ` Simon Marchi
0 siblings, 0 replies; 2+ messages in thread
From: Simon Marchi @ 2018-12-04 18:59 UTC (permalink / raw)
To: Pedro Alves, gdb-patches
On 2018-12-04 1:16 p.m., Pedro Alves wrote:
> Building for x86_64/-m32 with --enable-64-bit-bfd, compilation fails
> with:
>
> src/gdb/dwarf2read.c: In instantiation of ‘gdb::array_view<const unsigned char> get_gdb_index_contents_from_section(objfile*, T*) [with T = dwarf2_per_objfile]’:
> src/gdb/dwarf2read.c:6266:54: required from here
> src/gdb/dwarf2read.c:6192:37: error: narrowing conversion of ‘section->dwarf2_section_info::size’ from ‘bfd_size_type {aka long long unsigned int}’ to ‘size_t {aka unsigned int}’ inside { } [-Werror=narrowing]
> return {section->buffer, section->size};
> ~~~~~~~~~^~~~
>
> This fixes it.
Woops, thanks, LGTM.
Simon
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-12-04 18:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-04 18:16 [PATCH] Fix gdb build on 32-bit hosts w/ --enable-64-bit-bfd Pedro Alves
2018-12-04 18:59 ` Simon Marchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox