https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88800
--- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> --- Author: msebor Date: Thu Jan 17 16:33:55 2019 New Revision: 268037 URL: https://gcc.gnu.org/viewcvs?rev=268037&root=gcc&view=rev Log: PR tree-optimization/88800 - Spurious -Werror=array-bounds for non-taken branch gcc/ChangeLog: PR tree-optimization/88800 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking NO_WARNING bit here. Avoid folding out-of-bounds calls. * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove redundant argument. Add new argument and issue diagnostics under its control. Detect out-of-bounds access even with warnings disabled. (check_bounds_or_overlap): Change return type. Add argument. (wrestrict_dom_walker::check_call): Adjust. * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument. * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in check_bounds_or_overlap's return value. (handle_builtin_stxncpy): Same. (handle_builtin_strcat): Same. gcc/testsuite/ChangeLog: PR tree-optimization/88800 * c-c++-common/Wrestrict.c: Adjust. * gcc.dg/Warray-bounds-37.c: New test. * gcc.dg/builtin-memcpy-2.c: New test. * gcc.dg/builtin-memcpy.c: New test. Added: trunk/gcc/testsuite/gcc.dg/Warray-bounds-37.c trunk/gcc/testsuite/gcc.dg/builtin-memcpy-2.c trunk/gcc/testsuite/gcc.dg/builtin-memcpy.c Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-fold.c trunk/gcc/gimple-ssa-warn-restrict.c trunk/gcc/gimple-ssa-warn-restrict.h trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/c-c++-common/Wrestrict.c trunk/gcc/tree-ssa-strlen.c