On Tue, Jul 8, 2014 at 4:21 AM, <[email protected]> wrote:
> From: Trevor Saunders <[email protected]>
>
> 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
>