[clang] [Clang] Fix Microsoft ABI inheritance model when member pointer is used in a base specifier (PR #91990)

Mital Ashok via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 18 00:30:39 PDT 2024


================
@@ -215,6 +215,14 @@ struct NewUnspecified;
 SingleTemplate<void (IncSingle::*)()> tmpl_single;
 UnspecTemplate<void (NewUnspecified::*)()> tmpl_unspec;
 
+// Member pointers used in base specifiers force an unspecified inheritance model
+struct MemPtrInBase : UnspecTemplate<void (MemPtrInBase::*)()> {};
----------------
MitalAshok wrote:

It's not for simply naming the type for the template argument but `UnspecTemplate`'s definition does complete it by taking its `sizeof`, forcing the inheritance model to be assigned

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


More information about the cfe-commits mailing list