aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/dmd/cppmangle.d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2022-12-09 18:59:38 +0100
committerIain Buclaw <ibuclaw@gdcproject.org>2022-12-11 17:17:58 +0100
commit6d799f0aed18be25a5c908499b6411ab6d06b78c (patch)
tree3e6a91048c7fe3e78bae9f75b24eb37c5504681b /gcc/d/dmd/cppmangle.d
parentcc7f509d3c0b3ab63891cf7ca2def0fdfb3642c4 (diff)
downloadgcc-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.d22
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);