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

--- Comment #27 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:27778979c9a1e32a6ca74e5b5f377385225449b1

commit r15-5595-g27778979c9a1e32a6ca74e5b5f377385225449b1
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Nov 22 19:52:35 2024 +0100

    Add -f{,no-}assume-sane-operators-new-delete options [PR110137]

    The following patch adds a new option for optimizations related to
    replaceable global operators new/delete.
    The option isn't called -fassume-sane-operator-new (which clang++
    implements), because
    1) clang++ option means something different; initially it was an
       option to add malloc attribute to those declarations (but we have
       malloc attribute on all <new> calls already unconditionally);
       later it was changed to add noalias attribute rather than malloc,
       whatever it means, but it is certainly about the return value
       from the operator new (whether it can alias with other pointers);
       we already assume malloc-ish behavior that it doesn't alias any
       other pointers
    2) the option only affects operator new, we want it affect also
       operator delete
    The option basically allows to choose between pre-PR101480 behavior
    (now the default, more optimistic) and post-PR101480 behavior (safer
    but penalizing most of the code in the wild for rare needs).

    I've tried to explain stuff in the documentation too.

    2024-11-22  Jakub Jelinek  <ja...@redhat.com>

            PR c++/110137
            PR middle-end/101480
    gcc/
            * doc/invoke.texi (-fassume-sane-operators-new-delete,
            -fno-assume-sane-operators-new-delete): Document.
            * gimple.cc (gimple_call_fnspec): Handle
            -f{,no-}assume-sane-operators-new-delete.
            * ipa-inline-transform.cc (inline_call): Also clear
            flag_assume_sane_operators_new_delete on caller when inlining
            -fno-assume-sane-operators-new-delete callee into
            -fassume-sane-operators-new-delete caller.
    gcc/c-family/
            * c.opt (fassume-sane-operators-new-delete): New option.
    gcc/testsuite/
            * g++.dg/tree-ssa/pr110137-1.C: New test.
            * g++.dg/tree-ssa/pr110137-2.C: New test.
            * g++.dg/tree-ssa/pr110137-3.C: New test.
            * g++.dg/tree-ssa/pr110137-4.C: New test.
            * g++.dg/torture/pr10148.C: Add
-fno-assume-sane-operators-new-delete
            as dg-additional-options.
            * g++.dg/warn/Warray-bounds-16.C: Revert 2021-11-10 changes.

Reply via email to