On Tue, Jul 8, 2014 at 4:21 AM,  <tsaund...@mozilla.com> wrote:
> From: Trevor Saunders <tsaund...@mozilla.com>
>
> Hi,
>
> I'll admitt I'm not actually sure if the spec requires this, or if gcc 4.5 was
> too picky, but this fixes the build with gcc 4.5, and it doesn't really hurt
> anything.
>
> bootstrapped + regtested on x86_64-unknown-linux-gnu with no regressions, ok?

Ok.

Thanks,
Richard.

> Trev
>
> gcc/
>
>         PR bootstrap/61679
>          * hash-table.h: use hash_table::value_type instead of
>         Descriptor::value_type in the return types of several methods.
>
> diff --git a/gcc/hash-table.h b/gcc/hash-table.h
> index 22af12f..9c6a34a 100644
> --- a/gcc/hash-table.h
> +++ b/gcc/hash-table.h
> @@ -663,7 +663,7 @@ hash_table<Descriptor, Allocator, false>::~hash_table ()
>     HASH is the hash value for the element to be inserted.  */
>
>  template<typename Descriptor, template<typename Type> class Allocator>
> -typename Descriptor::value_type **
> +typename hash_table<Descriptor, Allocator, false>::value_type **
>  hash_table<Descriptor, Allocator, false>
>  ::find_empty_slot_for_expand (hashval_t hash)
>  {
> @@ -803,7 +803,7 @@ hash_table<Descriptor, Allocator, false>::clear_slot 
> (value_type **slot)
>     be used to insert or delete an element. */
>
>  template<typename Descriptor, template<typename Type> class Allocator>
> -typename Descriptor::value_type *
> +typename hash_table<Descriptor, Allocator, false>::value_type *
>  hash_table<Descriptor, Allocator, false>
>  ::find_with_hash (const compare_type *comparable, hashval_t hash)
>  {
> @@ -841,7 +841,7 @@ hash_table<Descriptor, Allocator, false>
>     entry, NULL may be returned if memory allocation fails. */
>
>  template<typename Descriptor, template<typename Type> class Allocator>
> -typename Descriptor::value_type **
> +typename hash_table<Descriptor, Allocator, false>::value_type **
>  hash_table<Descriptor, Allocator, false>
>  ::find_slot_with_hash (const compare_type *comparable, hashval_t hash,
>                        enum insert_option insert)
> @@ -922,7 +922,9 @@ hash_table<Descriptor, Allocator, false>
>
>  template<typename Descriptor, template<typename Type> class Allocator>
>  template<typename Argument,
> -         int (*Callback) (typename Descriptor::value_type **slot, Argument 
> argument)>
> +         int (*Callback) (typename hash_table<Descriptor, Allocator,
> +                                              false>::value_type **slot,
> +                          Argument argument)>
>  void
>  hash_table<Descriptor, Allocator, false>::traverse_noresize (Argument 
> argument)
>  {
> @@ -946,7 +948,8 @@ hash_table<Descriptor, Allocator, 
> false>::traverse_noresize (Argument argument)
>  template <typename Descriptor,
>           template <typename Type> class Allocator>
>  template <typename Argument,
> -         int (*Callback) (typename Descriptor::value_type **slot,
> +         int (*Callback) (typename hash_table<Descriptor, Allocator,
> +                                              false>::value_type **slot,
>                            Argument argument)>
>  void
>  hash_table<Descriptor, Allocator, false>::traverse (Argument argument)
> @@ -1181,7 +1184,7 @@ hash_table<Descriptor, Allocator, true>::~hash_table ()
>     HASH is the hash value for the element to be inserted.  */
>
>  template<typename Descriptor, template<typename Type> class Allocator>
> -typename Descriptor::value_type *
> +typename hash_table<Descriptor, Allocator, true>::value_type *
>  hash_table<Descriptor, Allocator, true>
>  ::find_empty_slot_for_expand (hashval_t hash)
>  {
> @@ -1321,7 +1324,7 @@ hash_table<Descriptor, Allocator, true>::clear_slot 
> (value_type *slot)
>     be used to insert or delete an element. */
>
>  template<typename Descriptor, template<typename Type> class Allocator>
> -typename Descriptor::value_type &
> +typename hash_table<Descriptor, Allocator, true>::value_type &
>  hash_table<Descriptor, Allocator, true>
>  ::find_with_hash (const compare_type &comparable, hashval_t hash)
>  {
> @@ -1358,7 +1361,7 @@ hash_table<Descriptor, Allocator, true>
>     entry, NULL may be returned if memory allocation fails. */
>
>  template<typename Descriptor, template<typename Type> class Allocator>
> -typename Descriptor::value_type *
> +typename hash_table<Descriptor, Allocator, true>::value_type *
>  hash_table<Descriptor, Allocator, true>
>  ::find_slot_with_hash (const compare_type &comparable, hashval_t hash,
>                        enum insert_option insert)
> @@ -1440,7 +1443,8 @@ hash_table<Descriptor, Allocator, true>
>  template<typename Descriptor,
>           template<typename Type> class Allocator>
>  template<typename Argument,
> -         int (*Callback) (typename Descriptor::value_type *slot,
> +         int (*Callback) (typename hash_table<Descriptor, Allocator,
> +                                              true>::value_type *slot,
>                            Argument argument)>
>  void
>  hash_table<Descriptor, Allocator, true>::traverse_noresize (Argument 
> argument)
> @@ -1465,7 +1469,8 @@ hash_table<Descriptor, Allocator, 
> true>::traverse_noresize (Argument argument)
>  template <typename Descriptor,
>           template <typename Type> class Allocator>
>  template <typename Argument,
> -         int (*Callback) (typename Descriptor::value_type *slot,
> +         int (*Callback) (typename hash_table<Descriptor, Allocator,
> +                                              true>::value_type *slot,
>                            Argument argument)>
>  void
>  hash_table<Descriptor, Allocator, true>::traverse (Argument argument)
> --
> 2.0.1
>

Reply via email to