On 12/17/2017 01:01 AM, Martin Sebor wrote:

    * c-c++-common/Wrestrict.c: New test.


   681    /* The following doesn't overlap but it should trigger 
-Wstrinop-ovewrflow
   682       for writing past the end.  */
   683    T ("012", a + sizeof a, a);

For nvptx, the warning actually shows up and is classified as excess error:
...
gcc/testsuite/c-c++-common/Wrestrict.c:683:3: warning: '__builtin_memcpy' writing 4 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
...

   760    r = SR (DIFF_MAX - 2, DIFF_MAX - 1);
   761    T (8, "012", a + r, a);            /* { dg-warning "accessing 4 bytes at offsets 
\\\[\[0-9\]+, \[0-9\]+] and 0 overlaps" "strcpy" } */
   762  

Likewise, the warning triggers here:
...
gcc/testsuite/c-c++-common/Wrestrict.c:761:3: warning: '__builtin_memcpy' writing 4 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
...


>>>     * c-c++-common/Warray-bounds-4.c: New test.

    66    TM ("0123", "",  ma.a5 + i, ma.a5);     /* { dg-warning "offset 6 from the object at 
.ma. is out of the bounds of referenced subobject .a5. with type .char\\\[5]. at offset 0" "strcpy" { 
xfail *-*-* } } */
    67    TM ("", "012345", ma.a7 + i, ma.a7);    /* { dg-warning "offset 13 from 
the object at .ma. is out of the bounds of referenced subobject .\(MA::\)?a7. with type .char ?\\\[7]. at 
offset 5" } */

And this warning fails to trigger:
...
FAIL: c-c++-common/Warray-bounds-4.c -Wc++-compat (test for warnings, line 67)
...

Thanks,
- Tom

Reply via email to