summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2020-04-22 16:47:58 +0200
committerJakub Jelinek <jakub@redhat.com>2020-04-22 16:47:58 +0200
commit1be62528078aef241fef6d2fe1cbc8e8e5379115 (patch)
tree5419288ca5e6428164c64bde5b3face227f25f2d
parentc3a34659036b55fa36a5355fdd67133f427eeb2d (diff)
downloadgcc-1be62528078aef241fef6d2fe1cbc8e8e5379115.tar.gz
ia64: Fix C++14 vs. C++17 ABI issue on ia64 [PR94706]
ia64 seems to be affected too, but the backend doesn't have any -Wpsabi warnings and I'm not sure if we really need them for an (almost?) dead target. 2020-04-22 Jakub Jelinek <jakub@redhat.com> PR target/94706 * config/ia64/ia64.c (hfa_element_mode): Ignore cxx17_empty_base_field_p fields.
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/ia64/ia64.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 043ee407e8c..532a56513f3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2020-04-22 Jakub Jelinek <jakub@redhat.com>
+ PR target/94706
+ * config/ia64/ia64.c (hfa_element_mode): Ignore
+ cxx17_empty_base_field_p fields.
+
PR target/94383
* calls.h (cxx17_empty_base_field_p): Declare.
* calls.c (cxx17_empty_base_field_p): Define.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 1500985a1f6..4b7bf698176 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -4665,7 +4665,7 @@ hfa_element_mode (const_tree type, bool nested)
case QUAL_UNION_TYPE:
for (t = TYPE_FIELDS (type); t; t = DECL_CHAIN (t))
{
- if (TREE_CODE (t) != FIELD_DECL)
+ if (TREE_CODE (t) != FIELD_DECL || cxx17_empty_base_field_p (t))
continue;
mode = hfa_element_mode (TREE_TYPE (t), 1);