aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2023-11-29 19:19:07 +0100
committerJakub Jelinek <jakub@redhat.com>2023-11-29 19:19:07 +0100
commit259bb7a45a26b76cbde2131a62926d4419c1cc1b (patch)
tree3997c1659bb870fa4151c678b1c179bf23c188bd /gcc
parent634cf26c94de620e66aa124b8ec4d6c2be4b74b2 (diff)
downloadgcc-259bb7a45a26b76cbde2131a62926d4419c1cc1b.zip
gcc-259bb7a45a26b76cbde2131a62926d4419c1cc1b.tar.gz
gcc-259bb7a45a26b76cbde2131a62926d4419c1cc1b.tar.bz2
rs6000: Fix up c-c++-common/builtin-classify-type-1.c failure [PR112725]
The rs6000 backend (and s390 one as well) diagnoses passing vector types to unprototyped functions, which breaks the builtin-classify-type-1.c test. The builtin isn't really unprototyped, it is just type-generic and accepting vector types is just fine there, all it does is categorize the vector type. The following patch makes sure we don't diagnose it for this builtin. 2023-11-29 Jakub Jelinek <jakub@redhat.com> PR target/112725 * config/rs6000/rs6000.cc (invalid_arg_for_unprototyped_fn): Return NULL for __builtin_classify_type calls with vector arguments.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 3dfd79c..cee22c3 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -24389,7 +24389,8 @@ invalid_arg_for_unprototyped_fn (const_tree typelist, const_tree funcdecl, const
&& VECTOR_TYPE_P (TREE_TYPE (val))
&& (funcdecl == NULL_TREE
|| (TREE_CODE (funcdecl) == FUNCTION_DECL
- && DECL_BUILT_IN_CLASS (funcdecl) != BUILT_IN_MD)))
+ && DECL_BUILT_IN_CLASS (funcdecl) != BUILT_IN_MD
+ && !fndecl_built_in_p (funcdecl, BUILT_IN_CLASSIFY_TYPE))))
? N_("AltiVec argument passed to unprototyped function")
: NULL;
}