diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2019-04-23 22:53:25 +0000 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gcc.gnu.org> | 2019-04-23 22:53:25 +0000 |
commit | 130cc10e2178fd7dcd9b6cabd64008f7c24821c7 (patch) | |
tree | b07fa89734c6f2b88d692e3c6de1be7495b87174 /gcc/d | |
parent | d9392bfa032b448839abadb523aff65b8ccb3dba (diff) | |
download | gcc-130cc10e2178fd7dcd9b6cabd64008f7c24821c7.zip gcc-130cc10e2178fd7dcd9b6cabd64008f7c24821c7.tar.gz gcc-130cc10e2178fd7dcd9b6cabd64008f7c24821c7.tar.bz2 |
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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/d/typeinfo.cc | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog index de191cb..a0a3266 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 ffa7e23..bbd3961 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); |