From 30719c65a90de4791db42c7c1b7cc3e17604f828 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Thu, 20 May 2004 16:02:35 +0000 Subject: [PATCH] * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) (cgraph_varpool_hash_node, eq_cgraph_varpool_node) (cgraph_varpool_node): Hash on the pointer to the decl, not the DECL_UID. Fixes 64-bit bootstrap failure. From-SVN: r82059 --- gcc/ChangeLog | 7 +++++++ gcc/cgraph.c | 28 ++++++++++------------------ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fb5adc9d93a..7583f313c25 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-05-20 Zack Weinberg + + * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) + (cgraph_varpool_hash_node, eq_cgraph_varpool_node) + (cgraph_varpool_node): Hash on the pointer to the decl, not + the DECL_UID. Fixes 64-bit bootstrap failure. + 2004-05-20 Richard Earnshaw * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure diff --git a/gcc/cgraph.c b/gcc/cgraph.c index 5e44b55d8d1..a1f137af60e 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -139,7 +139,7 @@ static int eq_node (const void *, const void *); static hashval_t hash_node (const void *p) { - return ((hashval_t) DECL_UID (((struct cgraph_node *) p)->decl)); + return htab_hash_pointer (((struct cgraph_node *) p)->decl); } /* Returns nonzero if P1 and P2 are equal. */ @@ -147,7 +147,7 @@ hash_node (const void *p) static int eq_node (const void *p1, const void *p2) { - return (DECL_UID (((struct cgraph_node *) p1)->decl) == (unsigned int)p2); + return (void *)((struct cgraph_node *) p1)->decl == p2; } /* Allocate new callgraph node and insert it into basic data structures. */ @@ -181,10 +181,8 @@ cgraph_node (tree decl) cgraph_hash = htab_create_ggc (10, hash_node, eq_node, NULL); slot = (struct cgraph_node **) - htab_find_slot_with_hash (cgraph_hash, - (void *)DECL_UID (decl), - (hashval_t)DECL_UID (decl), - INSERT); + htab_find_slot_with_hash (cgraph_hash, decl, + htab_hash_pointer (decl), INSERT); if (*slot) return *slot; @@ -326,10 +324,8 @@ cgraph_remove_node (struct cgraph_node *node) if (node->next) node->next->previous = node->previous; slot = - htab_find_slot_with_hash (cgraph_hash, - (void *)DECL_UID (node->decl), - (hashval_t)DECL_UID (node->decl), - NO_INSERT); + htab_find_slot_with_hash (cgraph_hash, node->decl, + htab_hash_pointer (node->decl), NO_INSERT); if (*slot == node) { if (node->next_clone) @@ -532,7 +528,7 @@ dump_cgraph (FILE *f) static hashval_t cgraph_varpool_hash_node (const void *p) { - return ((hashval_t) DECL_UID (((struct cgraph_varpool_node *) p)->decl)); + return htab_hash_pointer (((struct cgraph_varpool_node *) p)->decl); } /* Returns nonzero if P1 and P2 are equal. */ @@ -540,9 +536,7 @@ cgraph_varpool_hash_node (const void *p) static int eq_cgraph_varpool_node (const void *p1, const void *p2) { - return (DECL_UID (((struct cgraph_varpool_node *) p1)->decl) - == (unsigned int) p2); - + return (void *)((struct cgraph_varpool_node *) p1)->decl == p2; } /* Return cgraph_varpool node assigned to DECL. Create new one when needed. */ @@ -559,10 +553,8 @@ cgraph_varpool_node (tree decl) cgraph_varpool_hash = htab_create_ggc (10, cgraph_varpool_hash_node, eq_cgraph_varpool_node, NULL); slot = (struct cgraph_varpool_node **) - htab_find_slot_with_hash (cgraph_varpool_hash, - (void *)DECL_UID (decl), - (hashval_t)DECL_UID (decl), - INSERT); + htab_find_slot_with_hash (cgraph_varpool_hash, decl, + htab_hash_pointer (decl), INSERT); if (*slot) return *slot; node = ggc_alloc_cleared (sizeof (*node)); -- 2.30.2