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

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

https://gcc.gnu.org/g:1c6231c05bdccab3a21abcbb75e2094ea3e98782

commit r14-2692-g1c6231c05bdccab3a21abcbb75e2094ea3e98782
Author: liuhongt <hongtao....@intel.com>
Date:   Fri May 12 15:15:08 2023 +0800

    Provide -fcf-protection=branch,return.

    Use EnumSet instead of EnumBitSet since CF_FULL is not power of 2.
    It is a bit tricky for sets classification, cf_branch and cf_return
    should be in different sets, but they both "conflicts" cf_full,
    cf_none. And current EnumSet don't handle this well.

    So in the current implementation, only cf_full,cf_none are exclusive
    to each other, but they can be combined with any cf_branch, cf_return,
    cf_check. It's not perfect, but still an improvement than original
    one.

    gcc/ChangeLog:

            PR target/89701
            * common.opt: (fcf-protection=): Add EnumSet attribute to
            support combination of params.

    gcc/testsuite/ChangeLog:

            * c-c++-common/fcf-protection-10.c: New test.
            * c-c++-common/fcf-protection-11.c: New test.
            * c-c++-common/fcf-protection-12.c: New test.
            * c-c++-common/fcf-protection-8.c: New test.
            * c-c++-common/fcf-protection-9.c: New test.
            * gcc.target/i386/pr89701-1.c: New test.
            * gcc.target/i386/pr89701-2.c: New test.
            * gcc.target/i386/pr89701-3.c: New test.
  • [Bug target/89701] Provide -fcf... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to