From: Martin Sebor Date: Thu, 27 May 2021 19:37:43 +0000 (-0600) Subject: PR other/100463 - many errors using GTY and hash_map X-Git-Tag: basepoints/gcc-13~7217 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d05e83e243931c291409d4771f31747b6c04eb0;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/ggc.h b/gcc/ggc.h index 65f6cb4d19df..92884717f5c7 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 0779c930f0a7..dd039f103435 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 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; }