aboutsummaryrefslogtreecommitdiff
path: root/gcc/unwind-dw2.c
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-05-20 22:34:58 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-05-20 22:34:58 +0000
commit0ef54a47cf6012a588dc89ce63d2cf8d3106414f (patch)
tree278ca55e31dd743391ce22e513a63554e8ff213a /gcc/unwind-dw2.c
parentf4085d4c0b2c20282d8197507f6ffb35522aa2e6 (diff)
downloadgcc-0ef54a47cf6012a588dc89ce63d2cf8d3106414f.zip
gcc-0ef54a47cf6012a588dc89ce63d2cf8d3106414f.tar.gz
gcc-0ef54a47cf6012a588dc89ce63d2cf8d3106414f.tar.bz2
unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
* unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format. * unwind-dw2.c (extract_cie_info): Ditto. (_Unwind_FrameState): Change retaddr_column to word type. From-SVN: r82072
Diffstat (limited to 'gcc/unwind-dw2.c')
-rw-r--r--gcc/unwind-dw2.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c
index 70d3221..b99b700 100644
--- a/gcc/unwind-dw2.c
+++ b/gcc/unwind-dw2.c
@@ -133,7 +133,7 @@ typedef struct
_Unwind_Personality_Fn personality;
_Unwind_Sword data_align;
_Unwind_Word code_align;
- unsigned char retaddr_column;
+ _Unwind_Word retaddr_column;
unsigned char fde_encoding;
unsigned char lsda_encoding;
unsigned char saw_z;
@@ -337,7 +337,10 @@ extract_cie_info (const struct dwarf_cie *cie, struct _Unwind_Context *context,
data alignment and return address column. */
p = read_uleb128 (p, &fs->code_align);
p = read_sleb128 (p, &fs->data_align);
- fs->retaddr_column = *p++;
+ if (cie->version == 1)
+ fs->retaddr_column = *p++;
+ else
+ p = read_uleb128 (p, &fs->retaddr_column);
fs->lsda_encoding = DW_EH_PE_omit;
/* If the augmentation starts with 'z', then a uleb128 immediately