Another MIPS function return ABI fix.  Ok for trunk?

--

This fixes tmpdir-g++.dg-struct-layout-1/{t032,t059} failure.  Clang++
ignores C++17 empty bases in return values as well.

gcc/
        * config/mips/mips.cc (mips_fpr_return_fields): Ignore
        cxx17_empty_base_field_p fields.
---
 gcc/config/mips/mips.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc
index 0f2492219f3..5010f99f761 100644
--- a/gcc/config/mips/mips.cc
+++ b/gcc/config/mips/mips.cc
@@ -6337,7 +6337,8 @@ mips_fpr_return_fields (const_tree valtype, tree *fields,
   i = 0;
   for (field = TYPE_FIELDS (valtype); field != 0; field = DECL_CHAIN (field))
     {
-      if (TREE_CODE (field) != FIELD_DECL)
+      if (TREE_CODE (field) != FIELD_DECL
+         || cxx17_empty_base_field_p (field))
        continue;
 
       if (DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD (field))
-- 
2.35.1


Reply via email to