[Bug c++/86568] -Wnonnull warnings should highlight the relevant argument not the closing parenthesis

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jun 28 20:25:33 GMT 2020


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

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

https://gcc.gnu.org/g:75ff24e1920ea6b198350a2961e23175e6108e75

commit r11-1697-g75ff24e1920ea6b198350a2961e23175e6108e75
Author: Martin Sebor <msebor@redhat.com>
Date:   Sun Jun 28 14:22:14 2020 -0600

    Underline argument in -Wnonnull and in C++ extend warning to the this
pointer [PR c++/86568].

    Resolves:
    PR c++/86568 - -Wnonnull warnings should highlight the relevant argument
not the closing parenthesis

    gcc/c-family/ChangeLog:

            PR c++/86568
            * c-common.c (struct nonnull_arg_ctx): Add members.
            (check_function_nonnull): Use nonnull_arg_ctx as argument.  Handle
            C++ member functions specially.  Consider the this pointer
implicitly
            nonnull.
            (check_nonnull_arg): Use location of argument when available.
            (check_function_arguments): Use nonnull_arg_ctx as argument.

    gcc/ChangeLog:

            PR c++/86568
            * calls.c (maybe_warn_rdwr_sizes): Use location of argument if
            available.
            * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.  Adjust
            indentation.
            * tree.c (get_nonnull_args): Consider the this pointer implicitly
            nonnull.
            * var-tracking.c (deps_vec): New type.
            (var_loc_dep_vec): New function.
            (VAR_LOC_DEP_VEC): Use it.

    gcc/testsuite/ChangeLog:

            PR c++/86568
            * g++.dg/warn/Wnonnull5.C: New test.
            * c-c++-common/pr28656.c: Adjust text of expected warning.
            * c-c++-common/pr66208.c: Same.
            * g++.dg/cpp0x/nullptr22.C: Same.
            * g++.dg/ext/attr-nonnull.C: Same.
            * g++.dg/ext/attrib49.C: Same.
            * g++.dg/pr71973-2.C: Same.
            * g++.dg/warn/Wnonnull3.C: Same.
            * g++.dg/warn/Wnonnull4.C: Same.
            * obj-c++.dg/attributes/method-nonnull-1.mm: Same.
            * objc.dg/attributes/method-nonnull-1.m: Same.


More information about the Gcc-bugs mailing list