Since CET is applied to the whole program, it is correct to disallow -fcf-protection=full without -mcet. But compiler shouldn't crash. gcc/ PR target/85403 * config/i386/i386.c (get_builtin_code_for_version): Check error_mark_node. gcc/testsuite/ PR target/85403 * gcc.target/i386/pr85403.c: New test. --- gcc/config/i386/i386.c | 2 ++ gcc/testsuite/g++.dg/ext/mv1.C | 2 +- gcc/testsuite/g++.dg/ext/mv14.C | 2 +- gcc/testsuite/g++.dg/ext/mv15.C | 2 +- gcc/testsuite/g++.dg/ext/mv16.C | 2 +- gcc/testsuite/g++.dg/ext/mv17.C | 2 +- gcc/testsuite/g++.dg/ext/mv18.C | 2 +- gcc/testsuite/g++.dg/ext/mv19.C | 2 +- gcc/testsuite/g++.dg/ext/mv20.C | 2 +- gcc/testsuite/g++.dg/ext/mv21.C | 2 +- gcc/testsuite/g++.dg/ext/mv22.C | 2 +- gcc/testsuite/g++.dg/ext/mv23.C | 2 +- gcc/testsuite/g++.dg/ext/mv26.C | 1 + gcc/testsuite/g++.dg/ext/mv6.C | 2 +- gcc/testsuite/g++.dg/ext/mvc1.C | 1 + gcc/testsuite/gcc.target/i386/cet-notrack-icf-1.c | 2 +- gcc/testsuite/gcc.target/i386/cet-notrack-icf-3.c | 2 +- gcc/testsuite/gcc.target/i386/cet-property-2.c | 2 +- gcc/testsuite/gcc.target/i386/mvc1.c | 1 + gcc/testsuite/gcc.target/i386/mvc10.c | 1 + gcc/testsuite/gcc.target/i386/mvc11.c | 2 +- gcc/testsuite/gcc.target/i386/mvc6.c | 2 +- gcc/testsuite/gcc.target/i386/mvc7.c | 1 + gcc/testsuite/gcc.target/i386/mvc8.c | 2 +- gcc/testsuite/gcc.target/i386/mvc9.c | 2 +- gcc/testsuite/gcc.target/i386/pr81213.c | 1 + gcc/testsuite/gcc.target/i386/pr81214.c | 1 + gcc/testsuite/gcc.target/i386/pr85403.c | 10 ++++++++++ gcc/testsuite/gcc.target/i386/sse-26.c | 2 +- 29 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr85403.c diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 6fa5b0add02..8a73fc0d316 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -32344,6 +32344,8 @@ get_builtin_code_for_version (tree decl, tree *predicate_list) &global_options_set); gcc_assert (target_node); + if (target_node == error_mark_node) + return 0; new_target = TREE_TARGET_OPTION (target_node); gcc_assert (new_target); diff --git a/gcc/testsuite/gcc.target/i386/pr85403.c b/gcc/testsuite/gcc.target/i386/pr85403.c new file mode 100644 index 00000000000..f4fb12dd4e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr85403.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-fcf-protection -mcet" } */ +/* { dg-require-ifunc "" } */ + +__attribute__((target_clones("avx","arch=slm","arch=core-avx2","default"))) +int +foo () +{ + return -2; +} /* { dg-error "requires Intel CET support" } */ From-SVN: r259400
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fixincludes | Loading commit data... | |
gcc | Loading commit data... | |
gnattools | Loading commit data... | |
gotools | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libada | Loading commit data... | |
libatomic | Loading commit data... | |
libbacktrace | Loading commit data... | |
libcc1 | Loading commit data... | |
libcpp | Loading commit data... | |
libdecnumber | Loading commit data... | |
libffi | Loading commit data... | |
libgcc | Loading commit data... | |
libgfortran | Loading commit data... | |
libgo | Loading commit data... | |
libgomp | Loading commit data... | |
libhsail-rt | Loading commit data... | |
libiberty | Loading commit data... | |
libitm | Loading commit data... | |
libmpx | Loading commit data... | |
libobjc | Loading commit data... | |
liboffloadmic | Loading commit data... | |
libquadmath | Loading commit data... | |
libsanitizer | Loading commit data... | |
libssp | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
libvtv | Loading commit data... | |
lto-plugin | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
.dir-locals.el | Loading commit data... | |
.gitattributes | Loading commit data... | |
.gitignore | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
COPYING.RUNTIME | Loading commit data... | |
COPYING3 | Loading commit data... | |
COPYING3.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.jit | Loading commit data... | |
ChangeLog.tree-ssa | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
compile | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltgcc.m4 | Loading commit data... | |
ltmain.sh | Loading commit data... | |
ltoptions.m4 | Loading commit data... | |
ltsugar.m4 | Loading commit data... | |
ltversion.m4 | Loading commit data... | |
lt~obsolete.m4 | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |