[Bug analyzer/95188] analyzer-unsafe-call-within-signal-handler shows wrong statement for signal registration event

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Sep 29 22:33:34 GMT 2020


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

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

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

commit r11-3537-gd60d63a00bb50ba6896939705c589578177b404d
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Tue Sep 29 15:55:33 2020 -0400

    analyzer: fix signal-handler registration location [PR95188]

    PR analyzer/95188 reports that diagnostics from
    -Wanalyzer-unsafe-call-within-signal-handler use the wrong
    source location when reporting the signal-handler registration
    event in the diagnostic_path.  The diagnostics erroneously use the
    location of the first stmt in the basic block containing the call
    to "signal", rather than that of the call itself.

    Fixed thusly.

    gcc/analyzer/ChangeLog:
            PR analyzer/95188
            * engine.cc (stmt_requires_new_enode_p): Split enodes before
            "signal" calls.

    gcc/testsuite/ChangeLog:
            PR analyzer/95188
            * gcc.dg/analyzer/signal-registration-loc.c: New test.


More information about the Gcc-bugs mailing list