@@ -162,7 +162,8 @@ static void initField(Block *B, std::byte *Ptr, bool IsConst, bool IsMutable,
162162}
163163
164164static void initBase (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable,
165- bool IsActive, const Descriptor *D, unsigned FieldOffset) {
165+ bool IsActive, const Descriptor *D, unsigned FieldOffset,
166+ bool IsVirtualBase) {
166167 assert (D);
167168 assert (D->ElemRecord );
168169
@@ -172,13 +173,14 @@ static void initBase(Block *B, std::byte *Ptr, bool IsConst, bool IsMutable,
172173 Desc->Desc = D;
173174 Desc->IsInitialized = D->IsArray ;
174175 Desc->IsBase = true ;
176+ Desc->IsVirtualBase = IsVirtualBase;
175177 Desc->IsActive = IsActive && !IsUnion;
176178 Desc->IsConst = IsConst || D->IsConst ;
177179 Desc->IsFieldMutable = IsMutable || D->IsMutable ;
178180
179181 for (const auto &V : D->ElemRecord ->bases ())
180182 initBase (B, Ptr + FieldOffset, IsConst, IsMutable, IsActive, V.Desc ,
181- V.Offset );
183+ V.Offset , false );
182184 for (const auto &F : D->ElemRecord ->fields ())
183185 initField (B, Ptr + FieldOffset, IsConst, IsMutable, IsActive, IsUnion,
184186 F.Desc , F.Offset );
@@ -187,11 +189,11 @@ static void initBase(Block *B, std::byte *Ptr, bool IsConst, bool IsMutable,
187189static void ctorRecord (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable,
188190 bool IsActive, const Descriptor *D) {
189191 for (const auto &V : D->ElemRecord ->bases ())
190- initBase (B, Ptr, IsConst, IsMutable, IsActive, V.Desc , V.Offset );
192+ initBase (B, Ptr, IsConst, IsMutable, IsActive, V.Desc , V.Offset , false );
191193 for (const auto &F : D->ElemRecord ->fields ())
192194 initField (B, Ptr, IsConst, IsMutable, IsActive, D->ElemRecord ->isUnion (), F.Desc , F.Offset );
193195 for (const auto &V : D->ElemRecord ->virtual_bases ())
194- initBase (B, Ptr, IsConst, IsMutable, IsActive, V.Desc , V.Offset );
196+ initBase (B, Ptr, IsConst, IsMutable, IsActive, V.Desc , V.Offset , true );
195197}
196198
197199static void destroyField (Block *B, std::byte *Ptr, const Descriptor *D,
0 commit comments