From 1475e2012f267f69dab879ce146f99128fd21653 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 1 Aug 2007 03:44:35 +0000 Subject: [PATCH] * 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. --- ChangeLog | 17 +++++++++++++++++ localedata/ChangeLog | 4 ++++ localedata/tst-strptime.c | 2 +- nptl/ChangeLog | 2 ++ nptl/tst-rwlock14.c | 6 +++--- stdio-common/tst-fmemopen2.c | 2 +- stdlib/tst-strtod2.c | 2 +- sysdeps/generic/unwind-dw2-fde-glibc.c | 7 ++++--- sysdeps/generic/unwind-dw2-fde.c | 15 +++++++++------ sysdeps/generic/unwind-dw2.c | 22 +++++++++++++++------- 10 files changed, 57 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3a68c88172..7661c1e44d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2007-07-30 Jakub Jelinek + + * 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. + 2007-07-31 Ulrich Drepper * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs_conf): Count diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 7a7a62fa2f..8eae5da34f 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,7 @@ +2007-07-30 Jakub Jelinek + + * tst-strptime.c (do_test): Use %tu in fmt string for ptrdiff_t value. + 2007-07-16 Jakub Jelinek * locales/ar_SA (d_t_fmt, d_fmt, t_fmt, t_fmt_ampm): Replace %.1d diff --git a/localedata/tst-strptime.c b/localedata/tst-strptime.c index 4ee4fcb78d..b5ab232d7e 100644 --- a/localedata/tst-strptime.c +++ b/localedata/tst-strptime.c @@ -15,7 +15,7 @@ do_test (void) static const char s[] = "\ \x54\x68\xb8\x6e\x67\x20\x6d\xad\xea\x69\x20\x6d\xe9\x74"; char *r = strptime (s, "%b", &tm); - printf ("r = %p, r-s = %ju, tm.tm_mon = %d\n", r, r - s, tm.tm_mon); + printf ("r = %p, r-s = %tu, tm.tm_mon = %d\n", r, r - s, tm.tm_mon); return r == NULL || r - s != 14 || tm.tm_mon != 10; } diff --git a/nptl/ChangeLog b/nptl/ChangeLog index eda7e80613..7ad935c96d 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,7 @@ 2007-07-30 Jakub Jelinek + * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than %ecx. diff --git a/nptl/tst-rwlock14.c b/nptl/tst-rwlock14.c index fc0d3d219f..00e1becbfa 100644 --- a/nptl/tst-rwlock14.c +++ b/nptl/tst-rwlock14.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 Free Software Foundation, Inc. +/* Copyright (C) 2004, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -130,8 +130,8 @@ do_test (void) result = 1; } - ts.tv_nsec = 0x100001000LL; - if (ts.tv_nsec != 0x100001000LL) + ts.tv_nsec = (__typeof (ts.tv_nsec)) 0x100001000LL; + if ((__typeof (ts.tv_nsec)) 0x100001000LL != 0x100001000LL) ts.tv_nsec = 2000000000; e = pthread_rwlock_timedrdlock (&r, &ts); diff --git a/stdio-common/tst-fmemopen2.c b/stdio-common/tst-fmemopen2.c index 81beddddef..c2a4baace9 100644 --- a/stdio-common/tst-fmemopen2.c +++ b/stdio-common/tst-fmemopen2.c @@ -28,7 +28,7 @@ do_test (void) o = ftello (fp); if (o != 0) { - printf ("second ftello returned %ld, expected %zu\n", o, (off_t) 0); + printf ("second ftello returned %ld, expected 0\n", o); result = 1; } if (fseeko (fp, 0, SEEK_END) != 0) diff --git a/stdlib/tst-strtod2.c b/stdlib/tst-strtod2.c index 30d8d9df65..a7df82ebbd 100644 --- a/stdlib/tst-strtod2.c +++ b/stdlib/tst-strtod2.c @@ -32,7 +32,7 @@ do_test (void) } if (ep != tests[i].str + tests[i].offset) { - printf ("test %zu strtod parsed %ju characters, expected %zu\n", + printf ("test %zu strtod parsed %tu characters, expected %zu\n", i, ep - tests[i].str, tests[i].offset); status = 1; } diff --git a/sysdeps/generic/unwind-dw2-fde-glibc.c b/sysdeps/generic/unwind-dw2-fde-glibc.c index 0038a0cbf6..932a972743 100644 --- a/sysdeps/generic/unwind-dw2-fde-glibc.c +++ b/sysdeps/generic/unwind-dw2-fde-glibc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2002, 2007 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU C Library. @@ -235,10 +235,11 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr) if (data->ret != NULL) { unsigned int encoding = get_fde_encoding (data->ret); + _Unwind_Ptr func; read_encoded_value_with_base (encoding, base_from_cb_data (encoding, data), - data->ret->pc_begin, - (_Unwind_Ptr *)&data->func); + data->ret->pc_begin, &func); + data->func = (void *) func; } return 1; } diff --git a/sysdeps/generic/unwind-dw2-fde.c b/sysdeps/generic/unwind-dw2-fde.c index 13945b9719..8d62e46114 100644 --- a/sysdeps/generic/unwind-dw2-fde.c +++ b/sysdeps/generic/unwind-dw2-fde.c @@ -1,5 +1,5 @@ /* Subroutines needed for unwinding stack frames for exception handling. */ -/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006 +/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2007 Free Software Foundation, Inc. Contributed by Jason Merrill . @@ -301,7 +301,8 @@ get_cie_encoding (struct dwarf_cie *cie) if (aug[0] != 'z') return DW_EH_PE_absptr; - p = aug + strlen (aug) + 1; /* Skip the augmentation string. */ + /* Skip the augmentation string. */ + p = aug + strlen ((const char *) aug) + 1; p = read_uleb128 (p, &utmp); /* Skip code alignment. */ p = read_sleb128 (p, &stmp); /* Skip data alignment. */ p++; /* Skip return address column. */ @@ -838,7 +839,7 @@ linear_search_fdes (struct object *ob, fde *this_fde, void *pc) else { _Unwind_Ptr mask; - const char *p; + const unsigned char *p; p = read_encoded_value_with_base (encoding, base, this_fde->pc_begin, &pc_begin); @@ -908,7 +909,7 @@ binary_search_single_encoding_fdes (struct object *ob, void *pc) size_t i = (lo + hi) / 2; fde *f = vec->array[i]; _Unwind_Ptr pc_begin, pc_range; - const char *p; + const unsigned char *p; p = read_encoded_value_with_base (encoding, base, f->pc_begin, &pc_begin); @@ -936,7 +937,7 @@ binary_search_mixed_encoding_fdes (struct object *ob, void *pc) size_t i = (lo + hi) / 2; fde *f = vec->array[i]; _Unwind_Ptr pc_begin, pc_range; - const char *p; + const unsigned char *p; int encoding; encoding = get_fde_encoding (f); @@ -1046,6 +1047,7 @@ _Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases) if (f) { int encoding; + _Unwind_Ptr func; bases->tbase = ob->tbase; bases->dbase = ob->dbase; @@ -1054,7 +1056,8 @@ _Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases) if (ob->s.b.mixed_encoding) encoding = get_fde_encoding (f); read_encoded_value_with_base (encoding, base_from_object (encoding, ob), - f->pc_begin, (_Unwind_Ptr *)&bases->func); + f->pc_begin, &func); + bases->func = (void *) func; } return f; 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)