From 7def0865921f4256c8ae0fe1aad61d2e8ae64ca9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 16 Sep 2020 16:19:53 +0100 Subject: [PATCH] Oops - failed to commit change to verilog.c. Trying again. * verilog.c (verilog_write_address): Properly handle 64-bit addresses to avoid truncation of the high part. --- bfd/verilog.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/bfd/verilog.c b/bfd/verilog.c index 9f22bc36bbe..83d4ccca9e5 100644 --- a/bfd/verilog.c +++ b/bfd/verilog.c @@ -165,12 +165,25 @@ verilog_set_section_contents (bfd *abfd, static bfd_boolean verilog_write_address (bfd *abfd, bfd_vma address) { - char buffer[12]; + char buffer[20]; char *dst = buffer; bfd_size_type wrlen; /* Write the address. */ *dst++ = '@'; +#ifdef BFD64 + if (address >= (bfd_vma)1 << 32) + { + TOHEX (dst, (address >> 56)); + dst += 2; + TOHEX (dst, (address >> 48)); + dst += 2; + TOHEX (dst, (address >> 40)); + dst += 2; + TOHEX (dst, (address >> 32)); + dst += 2; + } +#endif TOHEX (dst, (address >> 24)); dst += 2; TOHEX (dst, (address >> 16)); -- 2.30.2