https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86688
--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- Author: msebor Date: Thu Jul 25 00:29:17 2019 New Revision: 273783 URL: https://gcc.gnu.org/viewcvs?rev=273783&root=gcc&view=rev Log: PR tree-optimization/91183 - strlen of a strcpy result with a conditional source not folded PR tree-optimization/86688 - missing -Wstringop-overflow using a non-string local array in strnlen with excessive bound gcc/ChangeLog: PR tree-optimization/91183 PR tree-optimization/86688 * builtins.c (compute_objsize): Handle MEM_REF. * tree-ssa-strlen.c (class ssa_name_limit_t): New. (get_min_string_length): Remove. (count_nonzero_bytes): New function. (handle_char_store): Rename... (handle_store): to this. Handle multibyte stores via integer types. (strlen_check_and_optimize_stmt): Adjust conditional and the called function name. gcc/testsuite/ChangeLog: PR tree-optimization/91183 PR tree-optimization/86688 * gcc.dg/Wstringop-overflow-14.c: New test. * gcc.dg/attr-nonstring-2.c: Remove xfails. * gcc.dg/strlenopt-70.c: New test. * gcc.dg/strlenopt-71.c: New test. * gcc.dg/strlenopt-72.c: New test. * gcc.dg/strlenopt-8.c: Remove xfails. Added: trunk/gcc/testsuite/gcc.dg/Wstringop-overflow-14.c trunk/gcc/testsuite/gcc.dg/strlenopt-70.c trunk/gcc/testsuite/gcc.dg/strlenopt-71.c trunk/gcc/testsuite/gcc.dg/strlenopt-72.c Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/c-c++-common/ubsan/object-size-9.c trunk/gcc/testsuite/gcc.dg/attr-nonstring-2.c trunk/gcc/testsuite/gcc.dg/strlenopt-8.c trunk/gcc/tree-ssa-strlen.c