aboutsummaryrefslogtreecommitdiff
path: root/gcc/d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2019-04-23 22:53:25 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2019-04-23 22:53:25 +0000
commit130cc10e2178fd7dcd9b6cabd64008f7c24821c7 (patch)
treeb07fa89734c6f2b88d692e3c6de1be7495b87174 /gcc/d
parentd9392bfa032b448839abadb523aff65b8ccb3dba (diff)
libphobos: Add D support for S/390 Linux
gcc/d/ChangeLog: 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> Robin Dapp <rdapp@linux.ibm.com> * typeinfo.cc (create_typeinfo): Write typeinfo flags as uint. gcc/testsuite/ChangeLog: 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> Robin Dapp <rdapp@linux.ibm.com> * gdc.dg/link.d: Test if target d_runtime. * gdc.dg/runnable.d: Fix tests to work on BigEndian. * gdc.dg/simd.d: Likewise. libphobos/ChangeLog: 2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org> Robin Dapp <rdapp@linux.ibm.com> * configure.tgt: Add s390*-linux* as a supported target. * libdruntime/gcc/sections/elf_shared.d: import gcc.builtins. (__tls_get_addr_internal): Declare. (TLS_DTV_OFFSET): Define as zero on SystemZ. (getTLSRange): Support getting TLS on SystemZ. * testsuite/libphobos.typeinfo/struct-align.d: New test. Co-Authored-By: Robin Dapp <rdapp@linux.ibm.com> From-SVN: r270523
Diffstat (limited to 'gcc/d')
-rw-r--r--gcc/d/ChangeLog5
-rw-r--r--gcc/d/typeinfo.cc12
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index de191cb7a02..a0a3266f1a2 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,4 +1,9 @@
2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
+ Robin Dapp <rdapp@linux.ibm.com>
+
+ * typeinfo.cc (create_typeinfo): Write typeinfo flags as uint.
+
+2019-04-23 Iain Buclaw <ibuclaw@gdcproject.org>
* d-builtins.cc (d_init_versions): Add D_BetterC, D_ModuleInfo,
D_Exceptions, D_TypeInfo as predefined version conditions.
diff --git a/gcc/d/typeinfo.cc b/gcc/d/typeinfo.cc
index ffa7e237865..bbd3961181d 100644
--- a/gcc/d/typeinfo.cc
+++ b/gcc/d/typeinfo.cc
@@ -860,7 +860,7 @@ public:
flags |= ClassFlags::noPointers;
Lhaspointers:
- this->layout_field (size_int (flags));
+ this->layout_field (build_integer_cst (flags, d_uint_type));
/* void *deallocator; */
tree ddtor = (cd->aggDelete)
@@ -916,7 +916,7 @@ public:
if (cd->isCOMinterface ())
flags |= ClassFlags::isCOMclass;
- this->layout_field (size_int (flags));
+ this->layout_field (build_integer_cst (flags, d_uint_type));
/* void *deallocator;
OffsetTypeInfo[] m_offTi; (not implemented)
@@ -1049,7 +1049,7 @@ public:
StructFlags::Type m_flags = 0;
if (ti->hasPointers ())
m_flags |= StructFlags::hasPointers;
- this->layout_field (size_int (m_flags));
+ this->layout_field (build_integer_cst (m_flags, d_uint_type));
/* void function(void*) xdtor; */
tree dtor = (sd->dtor) ? build_address (get_symbol_decl (sd->dtor))
@@ -1063,7 +1063,7 @@ public:
this->layout_field (null_pointer_node);
/* uint m_align; */
- this->layout_field (size_int (ti->alignsize ()));
+ this->layout_field (build_integer_cst (ti->alignsize (), d_uint_type));
if (global.params.is64bit)
{
@@ -1531,8 +1531,8 @@ create_typeinfo (Type *type, Module *mod)
array_type_node, array_type_node,
ptr_type_node, ptr_type_node,
ptr_type_node, ptr_type_node,
- size_type_node, ptr_type_node,
- ptr_type_node, size_type_node,
+ d_uint_type, ptr_type_node,
+ ptr_type_node, d_uint_type,
ptr_type_node, argtype, argtype, NULL);
}
t->vtinfo = TypeInfoStructDeclaration::create (t);