[clang] [clang][bytecode] Support virtual bases in C++26 (PR #204289)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 18 14:01:57 PDT 2026


================
@@ -4861,7 +4861,14 @@ bool Compiler<Emitter>::visitZeroRecordInitializer(const Record *R,
       return false;
   }
 
-  // FIXME: Virtual bases.
+  for (const Record::Base &B : R->virtual_bases()) {
+    if (!this->emitGetPtrVirtBase(cast<CXXRecordDecl>(B.R->getDecl()), E))
+      return false;
+    if (!this->visitZeroRecordInitializer(B.R, E))
+      return false;
+    if (!this->emitFinishInitPop(E))
+      return false;
----------------
efriedma-quic wrote:

I think we need to distinguish whether visitZeroRecordInitializer is called on a complete objects, a base class.

https://github.com/llvm/llvm-project/pull/204289


More information about the cfe-commits mailing list