aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-patterns.cc
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2023-05-12 15:15:08 +0800
committerliuhongt <hongtao.liu@intel.com>2023-07-21 11:06:15 +0800
commit1c6231c05bdccab3a21abcbb75e2094ea3e98782 (patch)
tree0b6e17856085c3649c75f111f8120044bf5e7f4f /gcc/tree-vect-patterns.cc
parent629ad1cfdaf542c454536d56ba9de19bd0a4b046 (diff)
downloadgcc-1c6231c05bdccab3a21abcbb75e2094ea3e98782.zip
gcc-1c6231c05bdccab3a21abcbb75e2094ea3e98782.tar.gz
gcc-1c6231c05bdccab3a21abcbb75e2094ea3e98782.tar.bz2
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.
Diffstat (limited to 'gcc/tree-vect-patterns.cc')
0 files changed, 0 insertions, 0 deletions