Mercurial > hg > CbC > CbC_gcc
diff libiberty/hashtab.c @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | a06113de4d67 |
children | f6334be47118 |
line wrap: on
line diff
--- a/libiberty/hashtab.c Sun Feb 07 18:28:00 2010 +0900 +++ b/libiberty/hashtab.c Fri Feb 12 23:39:51 2010 +0900 @@ -1,5 +1,5 @@ /* An expandable hash tables datatype. - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2009 Free Software Foundation, Inc. Contributed by Vladimir Makarov (vmakarov@cygnus.com). @@ -50,6 +50,9 @@ #ifdef HAVE_LIMITS_H #include <limits.h> #endif +#ifdef HAVE_INTTYPES_H +#include <inttypes.h> +#endif #ifdef HAVE_STDINT_H #include <stdint.h> #endif @@ -196,7 +199,7 @@ static hashval_t hash_pointer (const PTR p) { - return (hashval_t) ((long)p >> 3); + return (hashval_t) ((intptr_t)p >> 3); } /* Returns non-zero if P1 and P2 are equal. */ @@ -759,7 +762,8 @@ void htab_traverse (htab_t htab, htab_trav callback, PTR info) { - if (htab_elements (htab) * 8 < htab_size (htab)) + size_t size = htab_size (htab); + if (htab_elements (htab) * 8 < size && size > 32) htab_expand (htab); htab_traverse_noresize (htab, callback, info);