PR 68406: Avoid problem with older host compilers
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 18 Nov 2015 14:31:10 +0000 (14:31 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 18 Nov 2015 14:31:10 +0000 (14:31 +0000)
Older compilers require the Key typedef to be expanded for the traversal
function templates.  This patch uses the same approach as we did for
hash_map.

Tested on x86_64-linux-gnu.

gcc/
PR bootstrap/68406
* hash-set.h (hash_set::traverse): Expand Key typedef.

From-SVN: r230549

gcc/ChangeLog
gcc/hash-set.h

index e3c11fe0372fb060bdd82db7efe885e25bc23842..620a3105c1ccccbcd221ea658bbe04e213a9c8ae 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR bootstrap/68406
+       * hash-set.h (hash_set::traverse): Expand Key typedef.
+
 2015-11-18  Martin Liska  <mliska@suse.cz>
 
        * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
index 679d2b6df64562ab1da6c502679844095c92372f..8a7c9a00c1783367f9511f596d948f8eea563d5a 100644 (file)
@@ -68,7 +68,7 @@ public:
   /* Call the call back on each pair of key and value with the passed in
      arg.  */
 
-  template<typename Arg, bool (*f)(const Key &, Arg)>
+  template<typename Arg, bool (*f)(const typename Traits::value_type &, Arg)>
   void traverse (Arg a) const
     {
       for (typename hash_table<Traits>::iterator iter = m_table.begin ();