Timm =?utf-8?q?Bäder?= <[email protected]>,
Timm =?utf-8?q?Bäder?= <[email protected]>,
Timm =?utf-8?q?Bäder?= <[email protected]>,
Timm =?utf-8?q?Bäder?= <[email protected]>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/[email protected]>


================
@@ -863,17 +863,20 @@ bool ConstStructBuilder::Build(const APValue &Val, const 
RecordDecl *RD,
     // Accumulate and sort bases, in order to visit them in address order, 
which
     // may not be the same as declaration order.
     SmallVector<BaseInfo, 8> Bases;
-    Bases.reserve(CD->getNumBases());
+    Bases.reserve(Val.getStructNumBases());
     unsigned BaseNo = 0;
-    for (CXXRecordDecl::base_class_const_iterator Base = CD->bases_begin(),
-         BaseEnd = CD->bases_end(); Base != BaseEnd; ++Base, ++BaseNo) {
-      assert(!Base->isVirtual() && "should not have virtual bases here");
-      const CXXRecordDecl *BD = Base->getType()->getAsCXXRecordDecl();
+    for (const CXXBaseSpecifier &Base : CD->bases()) {
+      if (Base.isVirtual())
+        continue;
+      const CXXRecordDecl *BD = Base.getType()->getAsCXXRecordDecl();
       CharUnits BaseOffset = Layout.getBaseClassOffset(BD);
       Bases.push_back(BaseInfo(BD, BaseOffset, BaseNo));
+      ++BaseNo;
     }
     llvm::stable_sort(Bases);
 
+    // FIXME: Virtual bases?
+
----------------
tbaederr wrote:

Nice, thanks.

https://github.com/llvm/llvm-project/pull/204289
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to