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

Reply via email to