]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
s390: Fix builtin-classify-type-1.c on s390 too [PR112725]
authorJakub Jelinek <jakub@redhat.com>
Fri, 1 Dec 2023 07:11:34 +0000 (08:11 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 1 Dec 2023 07:15:25 +0000 (08:15 +0100)
s390 suffers from the same issue with __builtin_classify_type vector
arguments, the target hook diagnoses those because it thinks a vector
is passed to an unprototyped function, but in this case it is a type-generic
builtin which can support vector types just fine, by folding into the
appropriate constant.

This fixes
-FAIL: c-c++-common/builtin-classify-type-1.c  -Wc++-compat  (test for excess errors)
-UNRESOLVED: c-c++-common/builtin-classify-type-1.c  -Wc++-compat  compilation failed to produce executable
on s390x-linux.

2023-12-01  Jakub Jelinek  <jakub@redhat.com>

PR target/112725
* config/s390/s390.cc (s390_invalid_arg_for_unprototyped_fn): Return
NULL for __builtin_classify_type calls with vector arguments.

gcc/config/s390/s390.cc

index 29b5dc9792072b45202adef0127857ec0fdc3d76..4b16a75f8518cefde03ccf2d4fe870b1270eeacd 100644 (file)
@@ -12650,7 +12650,8 @@ s390_invalid_arg_for_unprototyped_fn (const_tree typelist, const_tree funcdecl,
           && 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_("vector argument passed to unprototyped function")
          : NULL);
 }