[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:28:00 PDT 2024


================
@@ -13,3 +15,18 @@ template <typename T>
 struct S3 {
   int T::*foo;
 };
+
+template<int I> struct Base {};
+struct
+S5 // #S5
+:
+Base<sizeof(int S5::*)>
+// expected-error at -1 {{member pointer has incomplete base type 'S5'}}
----------------
MitalAshok wrote:

It's an error for `-fcomplete-member-pointers` which is supposed to tell you when you use a member pointer in a way that the MS ABI would have it be unspecified, regardless of if you are compiling with MS member pointers or Itanium member pointers

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


More information about the cfe-commits mailing list