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

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 22 14:52:44 PDT 2026


Timm =?utf-8?q?Bäder?= <tbaeder at redhat.com>,
Timm =?utf-8?q?Bäder?= <tbaeder at redhat.com>,
Timm =?utf-8?q?Bäder?= <tbaeder at redhat.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/204289 at github.com>


================
@@ -335,8 +335,9 @@ CXXRecordDecl::setBases(CXXBaseSpecifier const * const *Bases,
       //   In the definition of a constexpr function [...]
       //    -- if the function is a constructor or destructor,
       //       its class shall not have any virtual base classes
-      data().DefaultedDefaultConstructorIsConstexpr = false;
-      data().DefaultedDestructorIsConstexpr = false;
+      data().DefaultedDefaultConstructorIsConstexpr =
----------------
efriedma-quic wrote:

Should this be `if (!C.getLangOpts().CPlusPlus26) data().DefaultedDefaultConstructorIsConstexpr = false;`?  I think this might be accidentally re-enabling DefaultedDefaultConstructorIsConstexpr in cases where it should stay disabled.  (I'm not sure it's actually a problem given the cases where DefaultedDefaultConstructorIsConstexpr is actually set to false, but it's confusing.)

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


More information about the cfe-commits mailing list