On 1/20/19 6:29 AM, Bernd Edlinger wrote:
> Hi,
> 
> 
> I tried to build linux yesterday, and became aware that there are a few
> false-positive warnings with -Waddress-of-packed-member:
> 
> struct t {
>   char a;
>   int b;
>   int *c;
>   int d[10];
> } __attribute__((packed));
> 
> struct t t0;
> struct t *t1;
> struct t **t2;
> 
> t2 = &t1;
> i1 = t0.c;
> 
> I fixed them quickly with the attached patch, and added a new test case,
> which also revealed a few missing warnings:
> 
> struct t t100[10][10];
> struct t (*baz())[10];
> 
> t2 = (struct t**) t100;
> t2 = (struct t**) baz();
> 
> 
> Well I remembered that Joseph wanted me to use min_align_of_type instead
> of TYPE_ALIGN in the -Wcast-align warning, so I changed 
> -Waddress-of-packed-member
> to do that as well.
> 
> Since I was not sure if the test coverage is good enough, I added a few more
> test cases, which just make sure the existing warning works properly.
> 
> I am however not sure of a warning that is as noisy as this one, should be
> default-enabled, because it might interfere with configure tests.  That might
> be better to enable this warning, in -Wall or -Wextra, and, well maybe
> enable -Wcast-align=strict also at the same warning level, since it is 
> currently
> not enabled at all, unless explicitly requested, what do you think?
Across Fedora there's only around a dozen packages that tripped over
this.  That's a small enough set that I'm not terribly concerned about
the noise factor.

jeff

Reply via email to