aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2017-12-06 17:59:01 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2017-12-06 10:59:01 -0700
commit9c1caf50e16b50903364709d774244928c719b35 (patch)
tree37e9610f886770d0980145594fd7487eac2c1c1a /gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
parent8a797929f09274ccbf95ee7d8e415d35c1f5b0d1 (diff)
downloadgcc-9c1caf50e16b50903364709d774244928c719b35.zip
gcc-9c1caf50e16b50903364709d774244928c719b35.tar.gz
gcc-9c1caf50e16b50903364709d774244928c719b35.tar.bz2
PR tree-optimization/82646 - bogus -Wstringop-overflow with -D_FORTIFY_SOURCE=2 on strncpy with range to a member array
gcc/ChangeLog: PR tree-optimization/82646 * builtins.c (maybe_emit_chk_warning): Use size as the bound for strncpy, not maxlen. gcc/testsuite/ChangeLog: PR tree-optimization/82646 * gcc.dg/builtin-stringop-chk-1.c: Adjust. * gcc.dg/builtin-stringop-chk-9.c: New test. * g++.dg/ext/strncpy-chk1.C: Adjust. From-SVN: r255448
Diffstat (limited to 'gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
index 35cc6dc..10048f3 100644
--- a/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
+++ b/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
@@ -36,7 +36,7 @@ test (int arg, ...)
vx = stpcpy (&buf2[18], "a");
vx = stpcpy (&buf2[18], "ab"); /* { dg-warning "writing 3" "stpcpy" } */
strncpy (&buf2[18], "a", 2);
- strncpy (&buf2[18], "a", 3); /* { dg-warning "specified bound 3 exceeds destination size 2" "strncpy" } */
+ strncpy (&buf2[18], "a", 3); /* { dg-warning "writing 3 bytes into a region of size 2" "strncpy" } */
strncpy (&buf2[18], "abc", 2);
strncpy (&buf2[18], "abc", 3); /* { dg-warning "writing 3 " "strncpy" } */
memset (buf2, '\0', sizeof (buf2));
@@ -93,7 +93,7 @@ void
test2 (const H h)
{
char c;
- strncpy (&c, str, 3); /* { dg-warning "specified bound 3 exceeds destination size 1" "strncpy" } */
+ strncpy (&c, str, 3); /* { dg-warning "writing 3 bytes into a region of size 1" "strncpy" } */
struct { char b[4]; } x;
sprintf (x.b, "%s", "ABCD"); /* { dg-warning "writing 5" "sprintf" } */