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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tim Lange <tla...@gcc.gnu.org>:

https://gcc.gnu.org/g:0ea5e3f4542832b8da016b152695e64a2a386309

commit r13-2582-g0ea5e3f4542832b8da016b152695e64a2a386309
Author: Tim Lange <m...@tim-lange.me>
Date:   Sat Sep 10 23:53:48 2022 +0200

    analyzer: consider empty ranges and zero byte accesses [PR106845]

    This patch adds handling of empty ranges in bit_range and byte_range and
    adds an assertion to member functions that assume a positive size.
    Further, the patch fixes an ICE caused by an empty byte_range passed to
    byte_range::exceeds_p.

    Regression-tested on Linux x86_64.

    2022-09-10  Tim Lange  <m...@tim-lange.me>

    gcc/analyzer/ChangeLog:

            PR analyzer/106845
            * region-model.cc (region_model::check_region_bounds):
            Bail out if 0 bytes were accessed.
            * store.cc (byte_range::dump_to_pp):
            Add special case for empty ranges.
            (byte_range::exceeds_p): Restrict to non-empty ranges.
            (byte_range::falls_short_of_p): Restrict to non-empty ranges.
            * store.h (bit_range::empty_p): New function.
            (bit_range::get_last_byte_offset): Restrict to non-empty ranges.
            (byte_range::empty_p): New function.
            (byte_range::get_last_byte_offset): Restrict to non-empty ranges.

    gcc/testsuite/ChangeLog:

            PR analyzer/106845
            * gcc.dg/analyzer/out-of-bounds-zero.c: New test.
            * gcc.dg/analyzer/pr106845.c: New test.

Reply via email to