diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2020-06-04 22:36:26 +0200 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2020-06-04 23:27:12 +0200 |
commit | 2cbc99d18dc411ac3fdef94e22ce86859806e63c (patch) | |
tree | 82939940413c5e726889ccd97fa2afd33e0b06be /gcc/d/decl.cc | |
parent | 4e05c918d28e3fa66f5baaf556f6886447c68c9a (diff) | |
download | gcc-2cbc99d18dc411ac3fdef94e22ce86859806e63c.zip gcc-2cbc99d18dc411ac3fdef94e22ce86859806e63c.tar.gz gcc-2cbc99d18dc411ac3fdef94e22ce86859806e63c.tar.bz2 |
d: Merge upstream dmd 48d704f08
Updates the Array interface in dmd/root/array.h to use a DArray<TYPE>
internally. Splits out BitArray into a separate header.
Reviewed-on: https://github.com/dlang/dmd/pull/11219
gcc/d/ChangeLog:
* dmd/MERGE: Merge upstream dmd 48d704f08.
* d-attribs.cc (build_attributes): Use new field name.
* d-builtins.cc (build_frontend_type): Likewise.
(maybe_set_builtin_1): Likewise.
(d_maybe_set_builtin): Likewise.
* d-codegen.cc (build_interface_binfo): Likewise.
(identity_compare_p): Likewise.
(lower_struct_comparison): Likewise.
(build_struct_comparison): Likewise.
(d_build_call): Likewise.
(build_frame_type): Likewise.
(build_closure): Likewise.
* d-compiler.cc (Compiler::paintAsType): Likewise.
(Compiler::loadModule): Likewise.
* d-incpath.cc (add_globalpaths): Likewise.
(add_filepaths): Likewise.
(add_import_paths): Likewise.
* d-lang.cc (deps_write): Likewise.
(d_parse_file): Likewise.
* decl.cc (gcc_attribute_p): Likewise.
(base_vtable_offset): Likewise.
(get_vtable_decl): Likewise.
(build_class_instance): Likewise.
* expr.cc (class ExprVisitor): Likewise.
* modules.cc (layout_moduleinfo_fields): Likewise.
(layout_moduleinfo): Likewise.
(build_module_tree): Likewise.
* toir.cc (class IRVisitor): Likewise.
* typeinfo.cc (class TypeInfoVisitor): Likewise.
(layout_classinfo_interfaces): Likewise.
* types.cc (layout_aggregate_members): Likewise.
(layout_aggregate_type): Likewise.
Diffstat (limited to 'gcc/d/decl.cc')
-rw-r--r-- | gcc/d/decl.cc | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc index 7dab5c7..11e6648 100644 --- a/gcc/d/decl.cc +++ b/gcc/d/decl.cc @@ -101,7 +101,7 @@ gcc_attribute_p (Dsymbol *decl) { ModuleDeclaration *md = decl->getModule ()->md; - if (md && md->packages && md->packages->dim == 1) + if (md && md->packages && md->packages->length == 1) { if (!strcmp ((*md->packages)[0]->toChars (), "gcc") && !strcmp (md->id->toChars (), "attribute")) @@ -179,7 +179,7 @@ public: if (d->ident == NULL) { /* Importing declaration list. */ - for (size_t i = 0; i < d->names.dim; i++) + for (size_t i = 0; i < d->names.length; i++) { AliasDeclaration *aliasdecl = d->aliasdecls[i]; tree decl = build_import_decl (aliasdecl); @@ -215,7 +215,7 @@ public: void visit (TupleDeclaration *d) { - for (size_t i = 0; i < d->objects->dim; i++) + for (size_t i = 0; i < d->objects->length; i++) { RootObject *o = (*d->objects)[i]; if ((o->dyncast () == DYNCAST_EXPRESSION) @@ -237,7 +237,7 @@ public: if (!ds) return; - for (size_t i = 0; i < ds->dim; i++) + for (size_t i = 0; i < ds->length; i++) this->build_dsymbol ((*ds)[i]); } @@ -285,7 +285,7 @@ public: if (isError (d) || !d->members) return; - for (size_t i = 0; i < d->members->dim; i++) + for (size_t i = 0; i < d->members->length; i++) this->build_dsymbol ((*d->members)[i]); } @@ -333,7 +333,7 @@ public: if (!d->needsCodegen ()) return; - for (size_t i = 0; i < d->members->dim; i++) + for (size_t i = 0; i < d->members->length; i++) this->build_dsymbol ((*d->members)[i]); } @@ -344,7 +344,7 @@ public: if (isError (d)|| !d->members) return; - for (size_t i = 0; i < d->members->dim; i++) + for (size_t i = 0; i < d->members->length; i++) this->build_dsymbol ((*d->members)[i]); } @@ -392,7 +392,7 @@ public: /* Put out the members. There might be static constructors in the members list, and they cannot be put in separate object files. */ - for (size_t i = 0; i < d->members->dim; i++) + for (size_t i = 0; i < d->members->length; i++) this->build_dsymbol ((*d->members)[i]); /* Put out xopEquals, xopCmp and xopHash. */ @@ -415,7 +415,7 @@ public: bool has_errors = false; /* Finish semantic analysis of functions in vtbl[]. */ - for (size_t i = d->vtblOffset (); i < d->vtbl.dim; i++) + for (size_t i = d->vtblOffset (); i < d->vtbl.length; i++) { FuncDeclaration *fd = d->vtbl[i]->isFuncDeclaration (); @@ -433,7 +433,7 @@ public: /* The function fd is hidden from the view of the class. If it overlaps with any function in the vtbl[], then issue an error. */ - for (size_t j = 1; j < d->vtbl.dim; j++) + for (size_t j = 1; j < d->vtbl.length; j++) { if (j == i) continue; @@ -497,7 +497,7 @@ public: return; /* Put out the members. */ - for (size_t i = 0; i < d->members->dim; i++) + for (size_t i = 0; i < d->members->length; i++) this->build_dsymbol ((*d->members)[i]); /* If something goes wrong during final semantic pass, don't bother with @@ -530,7 +530,7 @@ public: if (d->vtblOffset ()) CONSTRUCTOR_APPEND_ELT (elms, size_zero_node, build_address (d->csym)); - for (size_t i = d->vtblOffset (); i < d->vtbl.dim; i++) + for (size_t i = d->vtblOffset (); i < d->vtbl.length; i++) { FuncDeclaration *fd = d->vtbl[i]->isFuncDeclaration (); @@ -573,7 +573,7 @@ public: return; /* Put out the members. */ - for (size_t i = 0; i < d->members->dim; i++) + for (size_t i = 0; i < d->members->length; i++) this->build_dsymbol ((*d->members)[i]); /* Generate C symbols. */ @@ -906,7 +906,7 @@ public: } /* formal function parameters. */ - size_t n_parameters = d->parameters ? d->parameters->dim : 0; + size_t n_parameters = d->parameters ? d->parameters->length : 0; for (size_t i = 0; i < n_parameters; i++) { @@ -2013,27 +2013,27 @@ base_vtable_offset (ClassDeclaration *cd, BaseClass *bc) { unsigned csymoffset = Target::classinfosize; unsigned interfacesize = int_size_in_bytes (vtbl_interface_type_node); - csymoffset += cd->vtblInterfaces->dim * interfacesize; + csymoffset += cd->vtblInterfaces->length * interfacesize; - for (size_t i = 0; i < cd->vtblInterfaces->dim; i++) + for (size_t i = 0; i < cd->vtblInterfaces->length; i++) { BaseClass *b = (*cd->vtblInterfaces)[i]; if (b == bc) return csymoffset; - csymoffset += b->sym->vtbl.dim * Target::ptrsize; + csymoffset += b->sym->vtbl.length * Target::ptrsize; } /* Check all overriding interface vtbl[]s. */ for (ClassDeclaration *cd2 = cd->baseClass; cd2; cd2 = cd2->baseClass) { - for (size_t k = 0; k < cd2->vtblInterfaces->dim; k++) + for (size_t k = 0; k < cd2->vtblInterfaces->length; k++) { BaseClass *bs = (*cd2->vtblInterfaces)[k]; if (bs->fillVtbl (cd, NULL, 0)) { if (bc == bs) return csymoffset; - csymoffset += bs->sym->vtbl.dim * Target::ptrsize; + csymoffset += bs->sym->vtbl.length * Target::ptrsize; } } } @@ -2054,7 +2054,7 @@ get_vtable_decl (ClassDeclaration *decl) tree ident = mangle_internal_decl (decl, "__vtbl", "Z"); /* Note: Using a static array type for the VAR_DECL, the DECL_INITIAL value will have a different type. However the back-end seems to accept this. */ - tree type = build_ctype (Type::tvoidptr->sarrayOf (decl->vtbl.dim)); + tree type = build_ctype (Type::tvoidptr->sarrayOf (decl->vtbl.length)); decl->vtblsym = declare_extern_var (ident, type); DECL_LANG_SPECIFIC (decl->vtblsym) = build_lang_decl (NULL); @@ -2124,7 +2124,7 @@ build_class_instance (ClassReferenceExp *exp) /* Anonymous vtable interface fields are laid out before the fields of each class. The interface offset is used to determine where to put the classinfo offset reference. */ - for (size_t i = 0; i < bcd->vtblInterfaces->dim; i++) + for (size_t i = 0; i < bcd->vtblInterfaces->length; i++) { BaseClass *bc = (*bcd->vtblInterfaces)[i]; @@ -2151,7 +2151,7 @@ build_class_instance (ClassReferenceExp *exp) /* Generate initial values of all fields owned by current class. Use both the name and offset to find the right field. */ - for (size_t i = 0; i < bcd->fields.dim; i++) + for (size_t i = 0; i < bcd->fields.length; i++) { VarDeclaration *vfield = bcd->fields[i]; int index = exp->findFieldIndexByName (vfield); |