Analyzer status

Jakub Jelinek jakub@redhat.com
Tue Jan 14 02:58:00 GMT 2020


On Mon, Jan 13, 2020 at 06:42:06PM -0500, David Malcolm wrote:
> Thanks.  Does it have warnings, though?
> 
> My attempt was similar, but ran into warnings from -Wclass-memaccess in
> four places, like this:
> 
> ../../src/gcc/hash-map-traits.h:102:12: warning: ‘void* memset(void*,
> int, size_t)’ clearing an object of type ‘struct hash_map<tree_node*,
> std::pair<tree_node*, tree_node*> >::hash_entry’ with no trivial copy-
> assignment; use assignment or value-initialization instead [-Wclass-
> memaccess]
>   102 |     memset (entry, 0, sizeof (T) * count);
>       |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> where the types in question are:
> 
> (1)
>   struct hash_map<tree_node*, std::pair<tree_node*, tree_node*>
> >::hash_entry
>   ../../src/gcc/tree-data-ref.c:844:17:   required from here

I don't understand how there could be new warnings.
The patch doesn't add any new memsets, all it does is if (0) code in
alloc_entries for certain traits and in empty_slow stops using memset
for some traits and uses mark_empty loop there instead.
This was non-bootstrapped build, but I didn't see new warnings in there,
and for tree-data-ref.c which you've mentioned I've tried to compile
with installed trunk compiler and didn't get any warnings either.

	Jakub



More information about the Gcc-patches mailing list