aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpphash.c
diff options
context:
space:
mode:
authorZack Weinberg <zack@wolery.cumb.org>2000-04-30 17:11:25 +0000
committerZack Weinberg <zack@gcc.gnu.org>2000-04-30 17:11:25 +0000
commit638d694d84aedb360309dd956b261e428d85f092 (patch)
treeb2cbd4667ef9d395099460fd9be30ff0ec56ed29 /gcc/cpphash.c
parent3f49b8429cb6e4f440d796b8ed8bd75185ada516 (diff)
downloadgcc-638d694d84aedb360309dd956b261e428d85f092.zip
gcc-638d694d84aedb360309dd956b261e428d85f092.tar.gz
gcc-638d694d84aedb360309dd956b261e428d85f092.tar.bz2
cppfiles.c (redundant_include_p): Provide length of token to cpp_defined.
* cppfiles.c (redundant_include_p): Provide length of token to cpp_defined. * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash values are unsigned int. (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length. (_cpp_lookup_slot): Do not calculate the hash, either. * cpphash.h: Update prototypes. * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert): Hashes are unsigned int. Calculate hash here, pass by value to _cpp_lookup_slot. From-SVN: r33551
Diffstat (limited to 'gcc/cpphash.c')
-rw-r--r--gcc/cpphash.c32
1 files changed, 5 insertions, 27 deletions
diff --git a/gcc/cpphash.c b/gcc/cpphash.c
index 4c45161..4eb2d9d 100644
--- a/gcc/cpphash.c
+++ b/gcc/cpphash.c
@@ -246,7 +246,7 @@ _cpp_make_hashnode (name, len, type, hash)
const U_CHAR *name;
size_t len;
enum node_type type;
- unsigned long hash;
+ unsigned int hash;
{
HASHNODE *hp = (HASHNODE *) xmalloc (sizeof (HASHNODE));
U_CHAR *p = xmalloc (len + 1);
@@ -263,11 +263,7 @@ _cpp_make_hashnode (name, len, type, hash)
return hp;
}
-/* Find the hash node for name "name", which ends at the first
- non-identifier char.
-
- If LEN is >= 0, it is the length of the name.
- Otherwise, compute the length now. */
+/* Find the hash node for name "name", of length LEN. */
HASHNODE *
_cpp_lookup (pfile, name, len)
@@ -278,12 +274,6 @@ _cpp_lookup (pfile, name, len)
const U_CHAR *bp;
HASHNODE dummy;
- if (len < 0)
- {
- for (bp = name; is_idchar (*bp); bp++);
- len = bp - name;
- }
-
dummy.name = name;
dummy.length = len;
dummy.hash = _cpp_calc_hash (name, len);
@@ -300,30 +290,18 @@ _cpp_lookup_slot (pfile, name, len, insert, hash)
const U_CHAR *name;
int len;
enum insert_option insert;
- unsigned long *hash;
+ unsigned int hash;
{
const U_CHAR *bp;
HASHNODE dummy;
- HASHNODE **slot;
-
- if (len < 0)
- {
- for (bp = name; is_idchar (*bp); bp++)
- ;
-
- len = bp - name;
- }
dummy.name = name;
dummy.length = len;
- dummy.hash = _cpp_calc_hash (name, len);
+ dummy.hash = hash;
- slot = (HASHNODE **) htab_find_slot_with_hash (pfile->hashtab,
+ return (HASHNODE **) htab_find_slot_with_hash (pfile->hashtab,
(void *) &dummy,
dummy.hash, insert);
- if (insert)
- *hash = dummy.hash;
- return slot;
}
/* Init the hash table. In here so it can see the hash and eq functions. */