aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2021-05-27 13:37:43 -0600
committerMartin Sebor <msebor@redhat.com>2021-05-27 13:37:43 -0600
commit5d05e83e243931c291409d4771f31747b6c04eb0 (patch)
tree730b0c4d942154148dec0e15258d278d1d751a58 /gcc
parentfc3fdf0f2196e805a3a43ccb73595c33673670f3 (diff)
downloadgcc-5d05e83e243931c291409d4771f31747b6c04eb0.zip
gcc-5d05e83e243931c291409d4771f31747b6c04eb0.tar.gz
gcc-5d05e83e243931c291409d4771f31747b6c04eb0.tar.bz2
PR other/100463 - many errors using GTY and hash_map
gcc/ChangeLog: * ggc.h (gt_ggc_mx): Add overloads for all integers. (gt_pch_nx): Same. * hash-map.h (class hash_map): Add pch_nx_helper overloads for all integers. (hash_map::operator==): New function.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ggc.h39
-rw-r--r--gcc/hash-map.h42
2 files changed, 50 insertions, 31 deletions
diff --git a/gcc/ggc.h b/gcc/ggc.h
index 65f6cb4..9288471 100644
--- a/gcc/ggc.h
+++ b/gcc/ggc.h
@@ -332,19 +332,30 @@ gt_pch_nx (const char *)
{
}
-inline void
-gt_ggc_mx (int)
-{
-}
-
-inline void
-gt_pch_nx (int)
-{
-}
-
-inline void
-gt_pch_nx (unsigned int)
-{
-}
+inline void gt_pch_nx (bool) { }
+inline void gt_pch_nx (char) { }
+inline void gt_pch_nx (signed char) { }
+inline void gt_pch_nx (unsigned char) { }
+inline void gt_pch_nx (short) { }
+inline void gt_pch_nx (unsigned short) { }
+inline void gt_pch_nx (int) { }
+inline void gt_pch_nx (unsigned int) { }
+inline void gt_pch_nx (long int) { }
+inline void gt_pch_nx (unsigned long int) { }
+inline void gt_pch_nx (long long int) { }
+inline void gt_pch_nx (unsigned long long int) { }
+
+inline void gt_ggc_mx (bool) { }
+inline void gt_ggc_mx (char) { }
+inline void gt_ggc_mx (signed char) { }
+inline void gt_ggc_mx (unsigned char) { }
+inline void gt_ggc_mx (short) { }
+inline void gt_ggc_mx (unsigned short) { }
+inline void gt_ggc_mx (int) { }
+inline void gt_ggc_mx (unsigned int) { }
+inline void gt_ggc_mx (long int) { }
+inline void gt_ggc_mx (unsigned long int) { }
+inline void gt_ggc_mx (long long int) { }
+inline void gt_ggc_mx (unsigned long long int) { }
#endif
diff --git a/gcc/hash-map.h b/gcc/hash-map.h
index 0779c93..dd039f1 100644
--- a/gcc/hash-map.h
+++ b/gcc/hash-map.h
@@ -107,27 +107,31 @@ class GTY((user)) hash_map
gt_pch_nx (&x, op, cookie);
}
- static void
- pch_nx_helper (int, gt_pointer_operator, void *)
- {
- }
-
- static void
- pch_nx_helper (unsigned int, gt_pointer_operator, void *)
- {
- }
-
- static void
- pch_nx_helper (bool, gt_pointer_operator, void *)
- {
- }
-
template<typename T>
static void
pch_nx_helper (T *&x, gt_pointer_operator op, void *cookie)
{
op (&x, cookie);
}
+
+ /* The overloads below should match those in ggc.h. */
+#define DEFINE_PCH_HELPER(T) \
+ static void pch_nx_helper (T, gt_pointer_operator, void *) { }
+
+ DEFINE_PCH_HELPER (bool);
+ DEFINE_PCH_HELPER (char);
+ DEFINE_PCH_HELPER (signed char);
+ DEFINE_PCH_HELPER (unsigned char);
+ DEFINE_PCH_HELPER (short);
+ DEFINE_PCH_HELPER (unsigned short);
+ DEFINE_PCH_HELPER (int);
+ DEFINE_PCH_HELPER (unsigned int);
+ DEFINE_PCH_HELPER (long);
+ DEFINE_PCH_HELPER (unsigned long);
+ DEFINE_PCH_HELPER (long long);
+ DEFINE_PCH_HELPER (unsigned long long);
+
+#undef DEFINE_PCH_HELPER
};
public:
@@ -273,8 +277,12 @@ public:
return reference_pair (e.m_key, e.m_value);
}
- bool
- operator != (const iterator &other) const
+ bool operator== (const iterator &other) const
+ {
+ return m_iter == other.m_iter;
+ }
+
+ bool operator != (const iterator &other) const
{
return m_iter != other.m_iter;
}