On 01/16/2018 03:54 PM, Eric Botcazou wrote:
This test fails on strict-alignment platforms because a call to memcpy is not
turned into a simple move and thus yields an additional warning:
warning: '__builtin_memcpy' writing 4 bytes into a region of size 0 overflows
the destination [-Wstringop-overflow=]
There should be just one warning per call, and (as it is) -Wrestrict
should suppress -Wstringop-overflow. This suppression was a recent
change (r256683). Is it not working for you? The new assertion
fails for me with your change:
FAIL: c-c++-common/Wrestrict.c -Wc++-compat memcpy (test for warnings,
line 761)
Martin
The attached patch tweaks the test so that this call to memcpy is preserved on
the other platforms too (by adding one character to the string) and adds the
additional dg-warning directive.
Tested on visium-elf & x86_64-suse-linux, applied on the mainline as obvious.
2018-01-16 Eric Botcazou <ebotca...@adacore.com>
* c-c++-common/Wrestrict.c (test_strcpy_range): Bump string size of one
test and add dg-warning for the -Wstringop-overflow warning.