Fix use of COMPLETE_TYPE_P for -Wstrict-aliasing=1
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 26 Apr 2019 10:33:10 +0000 (10:33 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 26 Apr 2019 10:33:10 +0000 (10:33 +0000)
commite78a87f724bc83fa6dab383742ec82f3b28a92eb
treed4f07be6bc47beccfe2a18adf7c4fd4762e2865a
parent4ef8a24ca5416226d82ca272dea88e460ae2ce86
Fix use of COMPLETE_TYPE_P for -Wstrict-aliasing=1

The handling of -Wstrict-aliasing=1 applied COMPLETE_TYPE_P to the
pointer type rather than the pointer target, so missed the warnings
for "struct incomplete" in the testcase.

I couldn't find any existing C tests for -Wstrict-aliasing=1,
so I added a few extra tests besides the ones fixed by the patch.
I'm sure there's lots more we could test -- this is just supposed
to be better than the status quo (i.e. nothing).

2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>

gcc/c-family/
* c-warn.c (strict_aliasing_warning): Apply COMPLETE_TYPE_P to
the pointer target rather than the pointer itself.

gcc/testsuite/
* gcc.dg/alias-16.c: New test.

From-SVN: r270594
gcc/c-family/ChangeLog
gcc/c-family/c-warn.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/alias-16.c [new file with mode: 0644]