On 1/18/19 5:24 AM, Rainer Orth wrote:
Hi Christophe,

After your commit (r268037), I'm seeing excess errors on some arm targets:
FAIL: c-c++-common/Wrestrict.c  -Wc++-compat  (test for excess errors)
Excess errors:
/gcc/testsuite/c-c++-common/Wrestrict.c:195:3: warning: 'memcpy'
accessing 4 bytes at offsets [2, 3] and 0 overlaps between 1 and 2
bytes at offset [2, 3] [-Wrestrict]
/gcc/testsuite/c-c++-common/Wrestrict.c:202:3: warning: 'memcpy'
accessing 4 bytes at offsets [2, 3] and 0 overlaps between 1 and 2
bytes at offset [2, 3] [-Wrestrict]
/gcc/testsuite/c-c++-common/Wrestrict.c:207:3: warning: 'memcpy'
accessing 4 bytes at offsets [2, 3] and 0 overlaps between 1 and 2
bytes at offset [2, 3] [-Wrestrict]

I'm seeing the same on sparc-sun-solaris2.*, both 32 and 64-bit.
Test results for x86_64-w64-mingw32 and ia64-suse-linux-gnu show the same
failure.

Besides (and probably caused by the same revision), I now get

+XPASS: c-c++-common/Warray-bounds-3.c  -std=gnu++14 bug  (test for warnings, 
line 161)
+XPASS: c-c++-common/Warray-bounds-3.c  -std=gnu++17 bug  (test for warnings, 
line 161)
+XPASS: c-c++-common/Warray-bounds-3.c  -std=gnu++98 bug  (test for warnings, 
line 161)

+XPASS: c-c++-common/Warray-bounds-3.c  -Wc++-compat  bug  (test for warnings, 
line 161)

which is also seen on ia64-suse-linux-gnu.

I think this is the same problem as the one on arm.  The bigger patch
I posted should take care of it as well.

Martin

Index: gcc/testsuite/c-c++-common/Warray-bounds-3.c
===================================================================
--- gcc/testsuite/c-c++-common/Warray-bounds-3.c        (revision 268082)
+++ gcc/testsuite/c-c++-common/Warray-bounds-3.c        (working copy)
@@ -158,7 +158,7 @@ void test_memcpy_overflow (char *d, const char *s,
      but known access size is detected.  This works except with small
      sizes that are powers of 2 due to bug .  */
   T (char, 1, arr + SR (DIFF_MAX - 1, DIFF_MAX), s, 1);
- T (char, 1, arr + SR (DIFF_MAX - 1, DIFF_MAX), s, 2); /* { dg-warning "pointer overflow between offset \\\[\[0-9\]+, \[0-9\]+] and size 2 accessing array " "bug " { xfail *-*-* } } */ + T (char, 1, arr + SR (DIFF_MAX - 1, DIFF_MAX), s, 2); /* { dg-warning "pointer overflow between offset \\\[\[0-9\]+, \[0-9\]+] and size 2 accessing array " "bug " { xfail fold_memcpy_2 } } */ T (char, 1, arr + SR (DIFF_MAX - 2, DIFF_MAX), s, 3); /* { dg-warning "pointer overflow between offset \\\[\[0-9\]+, \[0-9\]+] and size 3 accessing array " "memcpy" } */ T (char, 1, arr + SR (DIFF_MAX - 4, DIFF_MAX), s, 5); /* { dg-warning "pointer overflow between offset \\\[\[0-9\]+, \[0-9\]+] and size 5 accessing array " "memcpy" } */
 }

Reply via email to