[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:55 PDT 2026


================
@@ -7098,6 +7119,16 @@ bool Compiler<Emitter>::compileDestructor(const CXXDestructorDecl *Dtor) {
       return false;
   }
 
+  for (const Record::Base &Base : llvm::reverse(R->virtual_bases())) {
+    if (Base.R->hasTrivialDtor())
+      continue;
+    if (!this->emitGetPtrVirtBase(cast<CXXRecordDecl>(Base.R->getDecl()),
+                                  SourceInfo{}))
+      return false;
+    if (!this->emitRecordDestructionPop(Base.R, {}))
+      return false;
+  }
----------------
efriedma-quic wrote:

Codegen has separate notions of "complete" and "base" destructors; do we need something simlar here?

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


More information about the cfe-commits mailing list