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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by David Malcolm <dmalc...@gcc.gnu.org>:

https://gcc.gnu.org/g:111fd515f2894d7cddf62f80c69765c43ae18577

commit r12-5330-g111fd515f2894d7cddf62f80c69765c43ae18577
Author: David Malcolm <dmalc...@redhat.com>
Date:   Tue Nov 16 10:36:49 2021 -0500

    analyzer: fix missing -Wanalyzer-write-to-const [PR102695]

    This patch fixes -Wanalyzer-write-to-const so that it will complain
    about attempts to write to functions, to labels.
    It also "teaches" the analyzer about strchr, in that strchr can either
    return a pointer into the input area (and thus -Wanalyzer-write-to-const
    can now complain about writes into a string literal seen this way),
    or return NULL (and thus the analyzer can complain about NULL
    dereferences if the result is used without a check).

    gcc/analyzer/ChangeLog:
            PR analyzer/102695
            * region-model-impl-calls.cc (region_model::impl_call_strchr): New.
            * region-model-manager.cc
            (region_model_manager::maybe_fold_unaryop): Simplify cast to
            pointer type of an existing pointer to a region.
            * region-model.cc (region_model::on_call_pre): Handle
            BUILT_IN_STRCHR and "strchr".
            (write_to_const_diagnostic::emit): Add auto_diagnostic_group.  Add
            alternate wordings for functions and labels.
            (write_to_const_diagnostic::describe_final_event): Add alternate
            wordings for functions and labels.
            (region_model::check_for_writable_region): Handle RK_FUNCTION and
            RK_LABEL.
            * region-model.h (region_model::impl_call_strchr): New decl.

    gcc/testsuite/ChangeLog:
            PR analyzer/102695
            * gcc.dg/analyzer/pr102695.c: New test.
            * gcc.dg/analyzer/strchr-1.c: New test.

    Signed-off-by: David Malcolm <dmalc...@redhat.com>

Reply via email to