]> git.ipfire.org Git - thirdparty/gcc.git/commit
analyzer: new warning: -Wanalyzer-overlapping-buffers [PR99860]
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 29 Aug 2023 22:12:09 +0000 (18:12 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Tue, 29 Aug 2023 22:12:09 +0000 (18:12 -0400)
commit034d99e81484fbb83f15da91ee1a744b9301b04f
treee66b19c01810789a3e05a0854afc62c6f2efe1f9
parent85ad41a494e31311f8a6b2dbe930a128c5e85840
analyzer: new warning: -Wanalyzer-overlapping-buffers [PR99860]

gcc/ChangeLog:
PR analyzer/99860
* Makefile.in (ANALYZER_OBJS): Add analyzer/ranges.o.

gcc/analyzer/ChangeLog:
PR analyzer/99860
* analyzer-selftests.cc (selftest::run_analyzer_selftests): Call
selftest::analyzer_ranges_cc_tests.
* analyzer-selftests.h (selftest::run_analyzer_selftests): New
decl.
* analyzer.opt (Wanalyzer-overlapping-buffers): New option.
* call-details.cc: Include "analyzer/ranges.h" and "make-unique.h".
(class overlapping_buffers): New.
(call_details::complain_about_overlap): New.
* call-details.h (call_details::complain_about_overlap): New decl.
* kf.cc (kf_memcpy_memmove::impl_call_pre): Call
cd.complain_about_overlap for memcpy and memcpy_chk.
(kf_strcat::impl_call_pre): Call cd.complain_about_overlap.
(kf_strcpy::impl_call_pre): Likewise.
* ranges.cc: New file.
* ranges.h: New file.

gcc/ChangeLog:
PR analyzer/99860
* doc/invoke.texi: Add -Wanalyzer-overlapping-buffers.

gcc/testsuite/ChangeLog:
PR analyzer/99860
* c-c++-common/analyzer/overlapping-buffers.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/Makefile.in
gcc/analyzer/analyzer-selftests.cc
gcc/analyzer/analyzer-selftests.h
gcc/analyzer/analyzer.opt
gcc/analyzer/call-details.cc
gcc/analyzer/call-details.h
gcc/analyzer/kf.cc
gcc/analyzer/ranges.cc [new file with mode: 0644]
gcc/analyzer/ranges.h [new file with mode: 0644]
gcc/doc/invoke.texi
gcc/testsuite/c-c++-common/analyzer/overlapping-buffers.c [new file with mode: 0644]