]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000: Fix up c-c++-common/builtin-classify-type-1.c failure [PR112725]
authorJakub Jelinek <jakub@redhat.com>
Wed, 29 Nov 2023 18:19:07 +0000 (19:19 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 29 Nov 2023 18:19:07 +0000 (19:19 +0100)
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.

gcc/config/rs6000/rs6000.cc

index 3dfd79c4c43fdcc0f241bd612d284dbfb57c0c31..cee22c359f395d62601fcd64bbc07fed2ce06148 100644 (file)
@@ -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;
 }