d: Merge upstream dmd 56f0a65c4.
authorIain Buclaw <ibuclaw@gdcproject.org>
Fri, 5 Jun 2020 15:50:49 +0000 (17:50 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Fri, 5 Jun 2020 15:52:57 +0000 (17:52 +0200)
commit5905cbdbcf6d760303ca87f27e04824f26976de4
tree16ea452b43613d027a78c18b033f7659f0cdbbbf
parent300452d7bf1d3a0ff3f7585a1166f3d473c70556
d: Merge upstream dmd 56f0a65c4.

Updates the Target interface, removing static from all members, so all
field accesses and member function calls go through a single global
'target'.  Information relating to extern ABI are now in TargetC,
TargetCPP, and TargetObjC for each supported language respectively.

Reviewed-on: https://github.com/dlang/dmd/pull/11228

gcc/d/ChangeLog:

* dmd/MERGE: Merge upstream dmd 56f0a65c4.
* d-builtins.cc (build_frontend_type): Remove static.
(d_build_builtins_module): Use target.va_listType() to get front-end
type for va_list.
(d_init_builtins): Move creation of va_list to Target::va_listType.
* d-codegen.cc (build_interface_binfo): Use new target global.
(build_vindex_ref): Likewise.
(identity_compare_p): Likewise.
* d-ctfloat.cc (CTFloat::parse): Likewise.
* d-lang.cc (d_init): Likewise.
* d-port.cc (Port::isFloat32LiteralOutOfRange): Likewise.
(Port::isFloat64LiteralOutOfRange): Likewise.
* d-target.cc (define_float_constants): Initialize constants through a
reference, instead of setting globals.
(Target::_init): Initialize new fields instead of setting globals.
(Target::va_listType): Build front-end type from va_list_type_node.
(Target::toCppMangle): Renamed to ...
(TargetCPP::toMangle): ... this.
(Target::cppTypeInfoMangle): Renamed to ...
(TargetCPP::typeInfoMangle): ... this.
(Target::cppTypeMangle): Renamed to ...
(TargetCPP::typeMangle): this.
(Target::cppParameterType): Renamed to ...
(TargetCPP::parameterType): ... this.  Use target.va_listType() to get
front-end type for va_list.
(Target::cppFundamentalType): Renamed to ...
(TargetCPP::fundamentalType): ... this.
* d-tree.h (build_frontend_type): Declare.
* decl.cc (base_vtable_offset): Use new target global.
* typeinfo.cc (layout_classinfo_interfaces): Likewise.
(layout_cpp_typeinfo): Likewise.
* types.cc (valist_array_p): Use target.va_listType() to get front-end
type for va_list.
(layout_aggregate_type): Use new target global.
27 files changed:
gcc/d/d-builtins.cc
gcc/d/d-codegen.cc
gcc/d/d-ctfloat.cc
gcc/d/d-lang.cc
gcc/d/d-port.cc
gcc/d/d-target.cc
gcc/d/d-tree.h
gcc/d/decl.cc
gcc/d/dmd/MERGE
gcc/d/dmd/attrib.c
gcc/d/dmd/constfold.c
gcc/d/dmd/cppmangle.c
gcc/d/dmd/dclass.c
gcc/d/dmd/declaration.c
gcc/d/dmd/dmangle.c
gcc/d/dmd/dstruct.c
gcc/d/dmd/expression.c
gcc/d/dmd/expressionsem.c
gcc/d/dmd/func.c
gcc/d/dmd/hdrgen.c
gcc/d/dmd/mtype.c
gcc/d/dmd/mtype.h
gcc/d/dmd/safe.c
gcc/d/dmd/statementsem.c
gcc/d/dmd/target.h
gcc/d/typeinfo.cc
gcc/d/types.cc