diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2022-12-09 18:59:38 +0100 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2022-12-11 17:17:58 +0100 |
commit | 6d799f0aed18be25a5c908499b6411ab6d06b78c (patch) | |
tree | 3e6a91048c7fe3e78bae9f75b24eb37c5504681b /gcc/d/dmd/cppmangle.d | |
parent | cc7f509d3c0b3ab63891cf7ca2def0fdfb3642c4 (diff) | |
download | gcc-6d799f0aed18be25a5c908499b6411ab6d06b78c.zip gcc-6d799f0aed18be25a5c908499b6411ab6d06b78c.tar.gz gcc-6d799f0aed18be25a5c908499b6411ab6d06b78c.tar.bz2 |
d: Merge upstream dmd, druntime c8ae4adb2e, phobos 792c8b7c1.
D front-end changes:
- Import dmd v2.101.0.
- Deprecate the ability to call `__traits(getAttributes)' on
overload sets.
- Deprecate non-empty `for' statement increment clause with no
effect.
- Array literals assigned to `scope' array variables can now be
allocated on the stack.
D runtime changes:
- Import druntime v2.101.0.
Phobos changes:
- Import phobos v2.101.0.
gcc/d/ChangeLog:
* dmd/MERGE: Merge upstream dmd c8ae4adb2e.
* typeinfo.cc (check_typeinfo_type): Update for new front-end
interface.
(TypeInfoVisitor::visit (TypeInfoStructDeclaration *)): Remove warning
that toHash() must be declared 'nothrow @safe`.
libphobos/ChangeLog:
* libdruntime/MERGE: Merge upstream druntime c8ae4adb2e.
* src/MERGE: Merge upstream phobos 792c8b7c1.
Diffstat (limited to 'gcc/d/dmd/cppmangle.d')
-rw-r--r-- | gcc/d/dmd/cppmangle.d | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/gcc/d/dmd/cppmangle.d b/gcc/d/dmd/cppmangle.d index 7c130e9..fbe9f01 100644 --- a/gcc/d/dmd/cppmangle.d +++ b/gcc/d/dmd/cppmangle.d @@ -534,10 +534,10 @@ private final class CppMangleVisitor : Visitor { /* <template-args> ::= I <template-arg>+ E */ - if (!ti || ti.tiargs.dim <= firstArg) // could happen if std::basic_string is not a template + if (!ti || ti.tiargs.length <= firstArg) // could happen if std::basic_string is not a template return false; buf.writeByte('I'); - foreach (i; firstArg .. ti.tiargs.dim) + foreach (i; firstArg .. ti.tiargs.length) { TemplateDeclaration td = ti.tempdecl.isTemplateDeclaration(); assert(td); @@ -556,7 +556,7 @@ private final class CppMangleVisitor : Visitor buf.writeByte('J'); // argument pack // mangle the rest of the arguments as types - foreach (j; i .. (*ti.tiargs).dim) + foreach (j; i .. (*ti.tiargs).length) { Type t = isType((*ti.tiargs)[j]); assert(t); @@ -760,7 +760,7 @@ private final class CppMangleVisitor : Visitor return false; Dsymbol q = getQualifier(ti); const bool inStd = isStd(q) || isStd(this.getTiNamespace(ti)); - return inStd && ti.tiargs.dim == 1 && isChar((*ti.tiargs)[0]); + return inStd && ti.tiargs.length == 1 && isChar((*ti.tiargs)[0]); } /*** @@ -771,7 +771,7 @@ private final class CppMangleVisitor : Visitor */ bool char_std_char_traits_char(TemplateInstance ti, string st) { - if (ti.tiargs.dim == 2 && + if (ti.tiargs.length == 2 && isChar((*ti.tiargs)[0]) && isChar_traits_char((*ti.tiargs)[1])) { @@ -851,7 +851,7 @@ private final class CppMangleVisitor : Visitor if (ti.name == Id.basic_string) { // ::std::basic_string<char, ::std::char_traits<char>, ::std::allocator<char>> - if (ti.tiargs.dim == 3 && + if (ti.tiargs.length == 3 && isChar((*ti.tiargs)[0]) && isChar_traits_char((*ti.tiargs)[1]) && isAllocator_char((*ti.tiargs)[2])) @@ -933,7 +933,7 @@ private final class CppMangleVisitor : Visitor else if (s.ident == Id.basic_string) { // ::std::basic_string<char, ::std::char_traits<char>, ::std::allocator<char>> - if (ti.tiargs.dim == 3 && + if (ti.tiargs.length == 3 && isChar((*ti.tiargs)[0]) && isChar_traits_char((*ti.tiargs)[1]) && isAllocator_char((*ti.tiargs)[2])) @@ -1224,7 +1224,7 @@ private final class CppMangleVisitor : Visitor case CppOperator.OpAssign: TemplateDeclaration td = ti.tempdecl.isTemplateDeclaration(); assert(td); - assert(ti.tiargs.dim >= 1); + assert(ti.tiargs.length >= 1); TemplateParameter tp = (*td.parameters)[0]; TemplateValueParameter tv = tp.isTemplateValueParameter(); if (!tv || !tv.valType.isString()) @@ -2005,14 +2005,14 @@ extern(C++): this.context.res = (*analyzed_ti.tiargs)[idx]; o.visitObject(this); } - if (analyzed_ti.tiargs.dim > t.tiargs.dim) + if (analyzed_ti.tiargs.length > t.tiargs.length) { // If the resolved AST has more args than the parse one, // we have default arguments auto oparams = (cast(TemplateDeclaration)analyzed_ti.tempdecl).origParameters; - foreach (idx, arg; (*oparams)[t.tiargs.dim .. $]) + foreach (idx, arg; (*oparams)[t.tiargs.length .. $]) { - this.context.res = (*analyzed_ti.tiargs)[idx + t.tiargs.dim]; + this.context.res = (*analyzed_ti.tiargs)[idx + t.tiargs.length]; if (auto ttp = arg.isTemplateTypeParameter()) ttp.defaultType.accept(this); |