* builtins.h (c_srlen): Add argument.
commit7af57b1c5fc153f3491c861c379995032c1f1deb
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Sep 2018 03:34:19 +0000 (14 03:34 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Sep 2018 03:34:19 +0000 (14 03:34 +0000)
treea6a98bb3c25e71934a2ae133c6e5116dcb9349b9
parent9b7116a16d9c7a9b7e36f298e4a095911e9452fd
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264302 138bc75d-0d04-0410-961f-82ee72b054a4
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