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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Sebor <mse...@gcc.gnu.org>:

https://gcc.gnu.org/g:b48d4e6818674898f90d9358378c127511ef0f9f

commit r12-2976-gb48d4e6818674898f90d9358378c127511ef0f9f
Author: Martin Sebor <mse...@redhat.com>
Date:   Tue Aug 17 14:49:05 2021 -0600

    Move more warning code to gimple-ssa-warn-access etc.

    Also resolves:
    PR middle-end/101854 - Invalid warning -Wstringop-overflow wrong argument

    gcc/ChangeLog:

            PR middle-end/101854
            * builtins.c (expand_builtin_alloca): Move warning code to
check_alloca
            in gimple-ssa-warn-access.cc.
            * calls.c (alloc_max_size): Move code to check_alloca.
            (get_size_range): Move to pointer-query.cc.
            (maybe_warn_alloc_args_overflow): Move to
gimple-ssa-warn-access.cc.
            (get_attr_nonstring_decl): Move to tree.c.
            (fntype_argno_type): Move to gimple-ssa-warn-access.cc.
            (append_attrname): Same.
            (maybe_warn_rdwr_sizes): Same.
            (initialize_argument_information): Move code to
            gimple-ssa-warn-access.cc.
            * calls.h (maybe_warn_alloc_args_overflow): Move to
            gimple-ssa-warn-access.h.
            (get_attr_nonstring_decl): Move to tree.h.
            (maybe_warn_nonstring_arg):  Move to gimple-ssa-warn-access.h.
            (enum size_range_flags): Move to pointer-query.h.
            (get_size_range): Same.
            * gimple-ssa-warn-access.cc (has_location): Remove unused overload
            to avoid Clang -Wunused-function.
            (get_size_range): Declare static.
            (maybe_emit_free_warning): Rename...
            (maybe_check_dealloc_call): ...to this for consistency.
            (class pass_waccess): Add members.
            (pass_waccess::~pass_waccess): Defined.
            (alloc_max_size): Move here from calls.c.
            (maybe_warn_alloc_args_overflow): Same.
            (check_alloca): New function.
            (check_alloc_size_call): New function.
            (check_strncat): Handle another warning flag.
            (pass_waccess::check_builtin): Handle alloca.
            (fntype_argno_type): Move here from calls.c.
            (append_attrname): Same.
            (maybe_warn_rdwr_sizes): Same.
            (pass_waccess::check_call): Define.
            (check_nonstring_args): New function.
            (pass_waccess::check): Call new member functions.
            (pass_waccess::execute): Enable ranger.
            * gimple-ssa-warn-access.h (get_size_range): Move here from
calls.h.
            (maybe_warn_nonstring_arg): Same.
            * gimple-ssa-warn-restrict.c: Remove #include.
            * pointer-query.cc (get_size_range): Move here from calls.c.
            * pointer-query.h (enum size_range_flags): Same.
            (get_size_range): Same.
            * tree.c (get_attr_nonstring_decl): Move here from calls.c.
            * tree.h (get_attr_nonstring_decl): Move here from calls.h.

    gcc/testsuite/ChangeLog:

            * gcc.dg/attr-alloc_size-5.c: Adjust optimization to -O1.
            * gcc.dg/attr-alloc_size-7.c: Use #pragmas to adjust optimization.
            * gcc.dg/attr-alloc_size-8.c: Adjust optimization to -O1.

            PR middle-end/101854
            * gcc.dg/Wstringop-overflow-72.c: New test.

Reply via email to