diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2018-09-14 20:36:19 +0000 |
---|---|---|
committer | Bernd Edlinger <edlinger@gcc.gnu.org> | 2018-09-14 20:36:19 +0000 |
commit | 2870a4da4f2c928346ac92e69aef16515c76049e (patch) | |
tree | a43fbd2dacb24e3ce5b28bc94dbd2b997dda4acb /gcc | |
parent | 05172c0937ac514242f758b628b6687dbd00fd4c (diff) | |
download | gcc-2870a4da4f2c928346ac92e69aef16515c76049e.zip gcc-2870a4da4f2c928346ac92e69aef16515c76049e.tar.gz gcc-2870a4da4f2c928346ac92e69aef16515c76049e.tar.bz2 |
builtins.c (fold_builtin_strlen): Remove TODO comment.
2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
* builtins.c (fold_builtin_strlen): Remove TODO comment.
testsuite:
2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
* gcc.dg/warn-strlen-no-nul.c: Add some missing test cases.
From-SVN: r264334
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/builtins.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/warn-strlen-no-nul.c | 11 |
4 files changed, 16 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b33b938..76619e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> + * builtins.c (fold_builtin_strlen): Remove TODO comment. + +2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> + revert: 2018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de> diff --git a/gcc/builtins.c b/gcc/builtins.c index b2b7ca3..3f39d10 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -8462,7 +8462,7 @@ fold_builtin_strlen (location_t loc, tree type, tree arg) return fold_convert_loc (loc, type, len); if (!nonstr) - c_strlen (arg, 1, &nonstr); /* TODO: add test coverage here. */ + c_strlen (arg, 1, &nonstr); if (nonstr) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 36867ba..43ce2d9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> + + * gcc.dg/warn-strlen-no-nul.c: Add some missing test cases. + 2018-09-14 Martin Sebor <msebor@redhat.com> * gcc.dg/warn-stpcpy-no-nul.c: New test. diff --git a/gcc/testsuite/gcc.dg/warn-strlen-no-nul.c b/gcc/testsuite/gcc.dg/warn-strlen-no-nul.c index d2bc525..997dfc3 100644 --- a/gcc/testsuite/gcc.dg/warn-strlen-no-nul.c +++ b/gcc/testsuite/gcc.dg/warn-strlen-no-nul.c @@ -9,6 +9,7 @@ const char a[5] = "12345"; /* { dg-message "declared here" } */ int v0 = 0; int v1 = 1; +volatile int v2; void sink (int, ...); @@ -117,10 +118,8 @@ T (v0 ? b[i0] : &b[i3][i0] + i1); /* { dg-warning "nul" } */ T (v0 ? b[i0] : &b[i3][i0] + i1); /* { dg-warning "nul" } */ T (v0 ? b[i1] : &b[i3][i1] + v0); /* { dg-warning "nul" } */ -/* It's possible to detect the missing nul in the following two - expressions but GCC doesn't do it yet. */ -T (v0 ? &b[3][1] + v0 : b[2]); /* { dg-warning "nul" "bug" } */ -T (v0 ? &b[3][v0] : &b[3][v1]); /* { dg-warning "nul" "bug" } */ +T (v0 ? &b[3][1] + v0 : b[2]); /* { dg-warning "nul" } */ +T (v0 ? &b[3][v0] : &b[3][v1]); /* { dg-warning "nul" } */ struct A { char a[5], b[5]; }; @@ -299,3 +298,7 @@ T (v0 ? &ba[3].a[1].a[1] : ba[0].a[0].a); /* { dg-warning "nul" } */ T (v0 ? ba[0].a[0].a : ba[0].a[1].b); T (v0 ? ba[0].a[1].b : ba[0].a[0].a); + +T (v2 ? b[1] : &b[3][1] + v2); /* { dg-warning "nul" } */ +T (v2 ? &b[3][1] + v2 : b[2]); /* { dg-warning "nul" } */ +T (v2 ? &b[3][v2] : &b[2][v2]); /* { dg-warning "nul" } */ |