https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94704

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Completely untested guess:
--- gcc/config/s390/s390.c.jj   2020-03-14 08:14:47.097741411 +0100
+++ gcc/config/s390/s390.c      2020-04-22 14:24:17.980091105 +0200
@@ -11917,7 +11917,8 @@ s390_function_arg_vector (machine_mode m

       for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field))
        {
-         if (TREE_CODE (field) != FIELD_DECL)
+         if (TREE_CODE (field) != FIELD_DECL
+             || cxx17_empty_base_field_p (field))
            continue;

          if (single == NULL_TREE)
@@ -11967,7 +11968,8 @@ s390_function_arg_float (machine_mode mo

       for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field))
        {
-         if (TREE_CODE (field) != FIELD_DECL)
+         if (TREE_CODE (field) != FIELD_DECL
+             || cxx17_empty_base_field_p (field))
            continue;

          if (single == NULL_TREE)
(on top of the today posted cxx17_empty_base_field_p patch).
Though, of course that doesn't handle the -Wpsabi part if s390{,x} wants to
emit such diagnostics; for that the functions or their caller should determine
if they would make a different ABI decisions if the field wouldn't be skipped.

Reply via email to