Bernd Edlinger <bernd.edlin...@hotmail.de> writes: > Hi, > > this fixes a few -Wshadow=local warnings in hash-table.h. > > Since values of type size_t are assigned here to int variables > an overflow may happen resulting in memory leaks or malfunction. > > > Bootstrapped and reg-tested on x86_64-pc-linux-gnu. > Is it OK for trunk? > > > Thanks > Bernd. > > 2019-10-03 Bernd Edlinger <bernd.edlin...@hotmail.de> > > * hash-table.h (hash_table::empty_slow): Don't assign > size_t values to int variables.
OK, thanks. Richard > Index: gcc/hash-table.h > =================================================================== > --- gcc/hash-table.h (revision 276484) > +++ gcc/hash-table.h (working copy) > @@ -842,9 +842,8 @@ hash_table<Descriptor, Lazy, Allocator>::empty_slo > size_t size = m_size; > size_t nsize = size; > value_type *entries = m_entries; > - int i; > > - for (i = size - 1; i >= 0; i--) > + for (size_t i = size - 1; i < size; i--) > if (!is_empty (entries[i]) && !is_deleted (entries[i])) > Descriptor::remove (entries[i]); > > @@ -856,9 +855,10 @@ hash_table<Descriptor, Lazy, Allocator>::empty_slo > > if (nsize != size) > { > - int nindex = hash_table_higher_prime_index (nsize); > - int nsize = prime_tab[nindex].prime; > + unsigned int nindex = hash_table_higher_prime_index (nsize); > > + nsize = prime_tab[nindex].prime; > + > if (!m_ggc) > Allocator <value_type> ::data_free (m_entries); > else