builtins.h (c_srlen): Add argument.
authorMartin Sebor <msebor@redhat.com>
Fri, 14 Sep 2018 03:34:19 +0000 (03:34 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 14 Sep 2018 03:34:19 +0000 (21:34 -0600)
commit6ab24ea809555eeb869fe49595f22ed9c8737cc4
treea6a98bb3c25e71934a2ae133c6e5116dcb9349b9
parentd01b568a78351beb6b693b613e6b48bcb2475eae
builtins.h (c_srlen): Add argument.

* builtins.h (c_srlen): Add argument.
* builtins.c (warn_string_no_nul): New function.
(c_strlen): Add argument and use it.  Update recursive calls.
Pass DECL argument to string_constant to get info on non
terminated strings.  Update *NONSTR as needed.
(fold_builtin_strlen): Add argument to calls to c_strlen.
Warn for unterminated arrays.
(warn_string_no_null): Add prototype.
* expr.c (string_constant): Update arguments.  Update recursive
calls appropriately.  Detect missing NUL terminator and outermost
declaration its missing in.
Improve checks for arrays with nonzero lower bound or elements
that are not a single byte.  Simplify offset computation.
Simplify checks for non-NUL terminated strings.
* gimple-fold.c (get_range_strlen): Add argument to c_strlen call.
* gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code.

* gcc.dg/warn-strlen-no-nul.c: New test.

Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r264302
gcc/ChangeLog
gcc/builtins.c
gcc/builtins.h
gcc/expr.c
gcc/fold-const.c
gcc/gimple-fold.c
gcc/gimple-ssa-sprintf.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/warn-strlen-no-nul.c [new file with mode: 0644]
gcc/tree-ssa-strlen.c