aboutsummaryrefslogtreecommitdiff
path: root/gold/ehframe.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2008-02-14 02:40:15 +0000
committerIan Lance Taylor <iant@google.com>2008-02-14 02:40:15 +0000
commit935e887746227322222835cd002ec486f9f31402 (patch)
treeae527a59653cb6ab116f495c056ad97686ed69f9 /gold/ehframe.h
parentfd247bfe68f03688b12c8583933f5471f1ed0a86 (diff)
downloadfsf-binutils-gdb-935e887746227322222835cd002ec486f9f31402.zip
fsf-binutils-gdb-935e887746227322222835cd002ec486f9f31402.tar.gz
fsf-binutils-gdb-935e887746227322222835cd002ec486f9f31402.tar.bz2
Align FDE and CIE lengths as needed.
Diffstat (limited to 'gold/ehframe.h')
-rw-r--r--gold/ehframe.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/gold/ehframe.h b/gold/ehframe.h
index 2f45b23..cf3b738 100644
--- a/gold/ehframe.h
+++ b/gold/ehframe.h
@@ -184,13 +184,14 @@ class Fde
}
// Write the FDE to OVIEW starting at OFFSET. FDE_ENCODING is the
- // encoding, from the CIE. Record the FDE in EH_FRAME_HDR. Return
- // the new offset.
+ // encoding, from the CIE. Round up the bytes to ADDRALIGN if
+ // necessary. Record the FDE in EH_FRAME_HDR. Return the new
+ // offset.
template<int size, bool big_endian>
section_offset_type
write(unsigned char* oview, section_offset_type offset,
- section_offset_type cie_offset, unsigned char fde_encoding,
- Eh_frame_hdr* eh_frame_hdr);
+ unsigned int addralign, section_offset_type cie_offset,
+ unsigned char fde_encoding, Eh_frame_hdr* eh_frame_hdr);
private:
// The object in which this FDE was seen.
@@ -253,11 +254,12 @@ class Cie
Merge_map*);
// Write the CIE to OVIEW starting at OFFSET. EH_FRAME_HDR is the
- // exception frame header for FDE recording. Return the new offset.
+ // exception frame header for FDE recording. Round up the bytes to
+ // ADDRALIGN. Return the new offset.
template<int size, bool big_endian>
section_offset_type
write(unsigned char* oview, section_offset_type offset,
- Eh_frame_hdr* eh_frame_hdr);
+ unsigned int addralign, Eh_frame_hdr* eh_frame_hdr);
friend bool operator<(const Cie&, const Cie&);
friend bool operator==(const Cie&, const Cie&);