[Bug tree-optimization/104009] [12 Regression] r12-6030-g422f9eb7011b76c1 breaks kernel build

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 14 08:11:05 GMT 2022


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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Siddhesh Poyarekar
<siddhesh@gcc.gnu.org>:

https://gcc.gnu.org/g:17df585a3a6a852c71883cc2ff40e111a6875149

commit r12-6568-g17df585a3a6a852c71883cc2ff40e111a6875149
Author: Siddhesh Poyarekar <siddhesh@gotplt.org>
Date:   Fri Jan 14 08:56:15 2022 +0530

    tree-optimization/104009: Conservative underflow estimate in object size

    Restrict negative offset computation only to dynamic object sizes, where
    size expressions are accurate and not a maximum/minimum estimate and in
    cases where negative offsets definitely mean an underflow, e.g. in
    MEM_REF of the whole object with negative ofset in addr_object_size.

    This ends up missing some cases where __builtin_object_size could have
    come up with more precise results, so tests have been adjusted to
    reflect that.

    gcc/ChangeLog:

            PR tree-optimization/104009
            * tree-object-size.c (compute_builtin_object_size): Bail out on
            negative offset.
            (plus_stmt_object_size): Return maximum of wholesize and minimum
            of 0 for negative offset.

    gcc/testsuite/ChangeLog:

            PR tree-optimization/104009
            * gcc.dg/builtin-object-size-1.c (test10): New test.
            * gcc.dg/builtin-object-size-3.c (test10): Likewise.
            (test9): Expect zero size for negative offsets.
            * gcc.dg/builtin-object-size-4.c (test8): Likewise.
            * gcc.dg/builtin-object-size-5.c (test7): Drop test for
            __builtin_object_size.

    Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>


More information about the Gcc-bugs mailing list