(_bfd_elf_write_section_eh_frame): Do proper
[deliverable/binutils-gdb.git] / bfd / elf-eh-frame.c
index 9b88499e486fff0218f496adb37de3bcb6a0b32b..7151a397635c583d7830959238184e8205d9c334 100644 (file)
@@ -1445,7 +1445,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
 
                        val = read_value (abfd, buf, per_width,
                                          get_DW_EH_PE_signed (per_encoding));
-                       val += ent->offset - ent->new_offset;
+                       val += (bfd_vma) ent->offset - ent->new_offset;
                        val -= extra_string + extra_data;
                        write_value (abfd, buf, val, per_width);
                        action &= ~4;
@@ -1504,7 +1504,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
                  }
                  break;
                case DW_EH_PE_pcrel:
-                 value += ent->offset - ent->new_offset;
+                 value += (bfd_vma) ent->offset - ent->new_offset;
                  address += (sec->output_section->vma
                              + sec->output_offset
                              + ent->offset + 8);
@@ -1538,7 +1538,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
              if (value)
                {
                  if ((ent->lsda_encoding & 0xf0) == DW_EH_PE_pcrel)
-                   value += ent->offset - ent->new_offset;
+                   value += (bfd_vma) ent->offset - ent->new_offset;
                  else if (cie->u.cie.make_lsda_relative)
                    value -= (sec->output_section->vma
                              + sec->output_offset
@@ -1577,7 +1577,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
                    continue;
 
                  if ((ent->fde_encoding & 0xf0) == DW_EH_PE_pcrel)
-                   value += ent->offset + 8 - new_offset;
+                   value += (bfd_vma) ent->offset + 8 - new_offset;
                  if (ent->make_relative)
                    value -= (sec->output_section->vma
                              + sec->output_offset
This page took 0.02404 seconds and 4 git commands to generate.