Hi, This patch replaces ClassFlags and StructFlags with an int. In the D implementation of the D front-end, this type has been changed to an `enum class`.
Bootstrapped and regression tested on x86_64-linux-gnu/-m32/-mx32, committed to mainline. Regards, Iain --- gcc/d/ChangeLog: * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration *)): Use int to store type flags. (TypeInfoVisitor::visit(TypeInfoStructDeclaration *)): Likewise. --- gcc/d/typeinfo.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/d/typeinfo.cc b/gcc/d/typeinfo.cc index 978c73e65f6..04e228abf7c 100644 --- a/gcc/d/typeinfo.cc +++ b/gcc/d/typeinfo.cc @@ -868,7 +868,7 @@ public: this->layout_field (inv); /* ClassFlags m_flags; */ - ClassFlags::Type flags = ClassFlags::hasOffTi; + int flags = ClassFlags::hasOffTi; if (cd->isCOMclass ()) flags |= ClassFlags::isCOMclass; @@ -962,7 +962,7 @@ public: this->layout_field (null_pointer_node); /* ClassFlags m_flags; */ - ClassFlags::Type flags = ClassFlags::hasOffTi; + int flags = ClassFlags::hasOffTi; flags |= ClassFlags::hasTypeInfo; if (cd->isCOMinterface ()) flags |= ClassFlags::isCOMclass; @@ -1091,7 +1091,7 @@ public: this->layout_field (null_pointer_node); /* StructFlags m_flags; */ - StructFlags::Type m_flags = 0; + int m_flags = StructFlags::none; if (ti->hasPointers ()) m_flags |= StructFlags::hasPointers; this->layout_field (build_integer_cst (m_flags, d_uint_type)); -- 2.30.2