diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-08-01 03:44:35 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-08-01 03:44:35 +0000 |
commit | 1475e2012f267f69dab879ce146f99128fd21653 (patch) | |
tree | 811bc01b3abd62840d8b3bc285cca9575d50cba4 /sysdeps/generic/unwind-dw2.c | |
parent | 6f59d56e61305b665aecbaab1440b07b6c80bdc7 (diff) | |
download | glibc-1475e2012f267f69dab879ce146f99128fd21653.tar.gz glibc-1475e2012f267f69dab879ce146f99128fd21653.tar.xz glibc-1475e2012f267f69dab879ce146f99128fd21653.zip |
* stdlib/tst-strtod2.c (do_test): Use %tu in fmt string for ptrdiff_t
value. * stdio-common/tst-fmemopen2.c (do_test): Avoid fmt string warning if off_t is different rank from size_t. * sysdeps/generic/unwind-dw2.c (extract_cie_info, execute_cfa_program, uw_frame_state_for): Avoid type punning warnings. * sysdeps/generic/unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise. * sysdeps/generic/unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise. (binary_search_single_encoding_fdes, binary_search_mixed_encoding_fdes, get_cie_encoding, linear_search_fdes): Don't mix char and unsigned char pointers.
Diffstat (limited to 'sysdeps/generic/unwind-dw2.c')
-rw-r--r-- | sysdeps/generic/unwind-dw2.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/sysdeps/generic/unwind-dw2.c b/sysdeps/generic/unwind-dw2.c index d818e5dfd8..ba5723aa62 100644 --- a/sysdeps/generic/unwind-dw2.c +++ b/sysdeps/generic/unwind-dw2.c @@ -1,5 +1,5 @@ /* DWARF2 exception handling and frame unwind runtime interface routines. - Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2005,2006 + Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2005,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -309,8 +309,9 @@ extract_cie_info (struct dwarf_cie *cie, struct _Unwind_Context *context, /* "P" indicates a personality routine in the CIE augmentation. */ else if (aug[0] == 'P') { - p = read_encoded_value (context, *p, p + 1, - (_Unwind_Ptr *) &fs->personality); + _Unwind_Ptr personality; + p = read_encoded_value (context, *p, p + 1, &personality); + fs->personality = (_Unwind_Personality_Fn) personality; aug += 1; } @@ -771,8 +772,12 @@ execute_cfa_program (const unsigned char *insn_ptr, else switch (insn) { case DW_CFA_set_loc: - insn_ptr = read_encoded_value (context, fs->fde_encoding, - insn_ptr, (_Unwind_Ptr *) &fs->pc); + { + _Unwind_Ptr pc; + insn_ptr = read_encoded_value (context, fs->fde_encoding, + insn_ptr, &pc); + fs->pc = (void *) pc; + } break; case DW_CFA_advance_loc1: @@ -992,8 +997,11 @@ uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs) insn = aug + i; } if (fs->lsda_encoding != DW_EH_PE_omit) - aug = read_encoded_value (context, fs->lsda_encoding, aug, - (_Unwind_Ptr *) &context->lsda); + { + _Unwind_Ptr lsda; + aug = read_encoded_value (context, fs->lsda_encoding, aug, &lsda); + context->lsda = (void *) lsda; + } /* Then the insns in the FDE up to our target PC. */ if (insn == NULL) |