Passing void * to avail_expr_hash was an artifact of the old htab
interface. Since we're no longer using that interface and call the
hashing routine directly, we can just pass in the right type and avoid
the annoying casting.
This simplifies class-ifying the available expression stack and related
bits on the way to fixing 47679.
Bootstrapped and regression tested on x86_64-linux-gnu. Installed on
the trunk.
Jeff
PR tree-optimization/47679
* tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
type rather than void *.
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index e3eb0db..248d24f 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -231,7 +231,7 @@ static struct opt_stats_d opt_stats;
/* Local functions. */
static void optimize_stmt (basic_block, gimple_stmt_iterator);
static tree lookup_avail_expr (gimple, bool);
-static hashval_t avail_expr_hash (const void *);
+static hashval_t avail_expr_hash (struct expr_hash_elt *);
static void htab_statistics (FILE *,
const hash_table<expr_elt_hasher> &);
static void record_cond (cond_equivalence *);
@@ -2661,9 +2661,9 @@ lookup_avail_expr (gimple stmt, bool insert)
its operands. */
static hashval_t
-avail_expr_hash (const void *p)
+avail_expr_hash (struct expr_hash_elt *p)
{
- const struct hashable_expr *expr = &((const struct expr_hash_elt *)p)->expr;
+ const struct hashable_expr *expr = &p->expr;
inchash::hash hstate;
inchash::add_hashable_expr (expr, hstate);