https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83456

--- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> ---
Author: msebor
Date: Mon Mar 12 18:04:16 2018
New Revision: 258455

URL: https://gcc.gnu.org/viewcvs?rev=258455&root=gcc&view=rev
Log:
PR tree-optimization/83456 - -Wrestrict false positive on a non-overlapping
memcpy in an inline function

gcc/ChangeLog:

        PR tree-optimization/83456
        * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning
        for perfectly overlapping calls to memcpy.
        (gimple_fold_builtin_memory_chk): Same.
        (gimple_fold_builtin_strcpy): Handle no-warning.
        (gimple_fold_builtin_stxcpy_chk): Same.
        * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning.

gcc/c-family/ChangeLog:

        PR tree-optimization/83456
        * gcc/c-family/c-common.c (check_function_restrict): Return bool.
        Restore checking of bounded built-in functions.
        (check_function_arguments): Also return the result
        of warn_for_restrict.
        * gcc/c-family/c-common.c (check_function_restrict): Return bool.
        * gcc/c-family/c-warn.c (warn_for_restrict): Return bool.

gcc/testsuite/ChangeLog:

        PR tree-optimization/83456
        * c-c++-common/Wrestrict-2.c: Remove test cases.
        * c-c++-common/Wrestrict.c: Same.
        * gcc.dg/Wrestrict-12.c: New test.
        * gcc.dg/Wrestrict-14.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/Wrestrict-12.c
    trunk/gcc/testsuite/gcc.dg/Wrestrict-14.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c-family/c-common.h
    trunk/gcc/c-family/c-warn.c
    trunk/gcc/gimple-fold.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/Wrestrict-2.c
    trunk/gcc/testsuite/c-c++-common/Wrestrict.c
    trunk/gcc/tree-ssa-strlen.c

Reply via email to