[Bug tree-optimization/82945] add warning for passing non-strings to functions that expect string arguments
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 21 20:02:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82945
--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
Author: msebor
Date: Tue Nov 21 20:01:58 2017
New Revision: 255031
URL: https://gcc.gnu.org/viewcvs?rev=255031&root=gcc&view=rev
Log:
PR tree-optimization/82945 - add warning for passing non-strings to functions
that expect string arguments
gcc/ChangeLog:
PR tree-optimization/82945
* builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
* calls.h (maybe_warn_nonstring_arg): Declare new function.
* calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
functions.
(initialize_argument_information): Call maybe_warn_nonstring_arg.
* calls.h (get_attr_nonstring_decl): Declare new function.
* doc/extend.texi (attribute nonstring): Update.
* gimple-fold.c (gimple_fold_builtin_strncpy): Call
get_attr_nonstring_decl and handle it.
* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same. Improve
detection of nul-termination.
(strlen_to_stridx): Change to a pointer.
(handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
(pass_strlen::execute): Same.
gcc/testsuite/ChangeLog:
PR tree-optimization/82945
* c-c++-common/Wstringop-truncation-2.c: New test.
* c-c++-common/Wstringop-truncation.c: Adjust.
* c-c++-common/attr-nonstring-2.c: Adjust.
* c-c++-common/attr-nonstring-3.c: New test.
Added:
trunk/gcc/testsuite/c-c++-common/Wstringop-truncation-2.c
trunk/gcc/testsuite/c-c++-common/attr-nonstring-3.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/calls.c
trunk/gcc/calls.h
trunk/gcc/doc/extend.texi
trunk/gcc/gimple-fold.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/c-c++-common/Wstringop-truncation.c
trunk/gcc/testsuite/c-c++-common/attr-nonstring-2.c
trunk/gcc/tree-ssa-strlen.c
More information about the Gcc-bugs
mailing list