From 130cc10e2178fd7dcd9b6cabd64008f7c24821c7 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Tue, 23 Apr 2019 22:53:25 +0000 Subject: libphobos: Add D support for S/390 Linux gcc/d/ChangeLog: 2019-04-23 Iain Buclaw Robin Dapp * typeinfo.cc (create_typeinfo): Write typeinfo flags as uint. gcc/testsuite/ChangeLog: 2019-04-23 Iain Buclaw Robin Dapp * 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 Robin Dapp * 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 From-SVN: r270523 --- gcc/d/ChangeLog | 5 +++++ gcc/d/typeinfo.cc | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'gcc/d') diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog index de191cb7a02..a0a3266f1a2 100644 --- a/gcc/d/ChangeLog +++ b/gcc/d/ChangeLog @@ -1,3 +1,8 @@ +2019-04-23 Iain Buclaw + Robin Dapp + + * typeinfo.cc (create_typeinfo): Write typeinfo flags as uint. + 2019-04-23 Iain Buclaw * d-builtins.cc (d_init_versions): Add D_BetterC, D_ModuleInfo, 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); -- cgit v1.2.3