aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2015-06-25 17:05:55 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2015-06-25 17:05:55 +0000
commit5ac6389bc1c0729233a88c1ce146a21aa6a3e2ce (patch)
treefa3b1ac9d98c284a816013ec0edd06a55c612b1f /gcc
parent08ec27543d91cff797fc8dd0a8eb47cda2c843f7 (diff)
downloadgcc-5ac6389bc1c0729233a88c1ce146a21aa6a3e2ce.zip
gcc-5ac6389bc1c0729233a88c1ce146a21aa6a3e2ce.tar.gz
gcc-5ac6389bc1c0729233a88c1ce146a21aa6a3e2ce.tar.bz2
hash-traits.h (ggc_hasher::remove): Take a reference parameter.
gcc/ * hash-traits.h (ggc_hasher::remove): Take a reference parameter. (ggc_hasher::ggc_mx): Likewise. (ggc_cache_hasher): Inherit from ggc_hasher. Remove definitions that duplicate ggc_hasher ones. From-SVN: r224955
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/hash-traits.h25
2 files changed, 10 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71bb2af..32cecf1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
+ * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
+ (ggc_hasher::ggc_mx): Likewise.
+ (ggc_cache_hasher): Inherit from ggc_hasher. Remove definitions
+ that duplicate ggc_hasher ones.
+
+2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
+
* hash-table.h (hash_table): Add gt_cleare_cache as a friend.
(gt_cleare_cache): Check here for deleted and empty entries.
Replace handle_cache_entry with a call to keep_cache_entry.
diff --git a/gcc/hash-traits.h b/gcc/hash-traits.h
index 3cc6a6f..1d1a220 100644
--- a/gcc/hash-traits.h
+++ b/gcc/hash-traits.h
@@ -96,10 +96,10 @@ struct ggc_hasher
typedef T value_type;
typedef T compare_type;
- static void remove (T) {}
+ static void remove (T &) {}
static void
- ggc_mx (T p)
+ ggc_mx (T &p)
{
extern void gt_ggc_mx (T &);
gt_ggc_mx (p);
@@ -122,30 +122,11 @@ struct ggc_hasher
/* Hasher for cache entry in gc memory. */
template<typename T>
-struct ggc_cache_hasher
+struct ggc_cache_hasher : ggc_hasher<T>
{
- typedef T value_type;
- typedef T compare_type;
-
- static void remove (T &) {}
-
/* Entries are weakly held because this is for caches. */
-
static void ggc_mx (T &) {}
- static void
- pch_nx (T &p)
- {
- extern void gt_pch_nx (T &);
- gt_pch_nx (p);
- }
-
- static void
- pch_nx (T &p, gt_pointer_operator op, void *cookie)
- {
- op (&p, cookie);
- }
-
static int
keep_cache_entry (T &e)
{