]> granicus.if.org Git - clang/commitdiff
Fix a build-bot breakage for clang-modernize when run with the MSVC ABI
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 17 Jan 2014 10:54:42 +0000 (10:54 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 17 Jan 2014 10:54:42 +0000 (10:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199486 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaType.cpp

index 30edc48dd507bad11faacbd0331eee5e63c5149b..4eef099375f14834efddc904f1b531358cf4ade7 100644 (file)
@@ -1456,6 +1456,13 @@ QualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM,
                                diag::err_array_of_abstract_type))
       return QualType();
 
+    // Mentioning a member pointer type for an array type causes us to lock in
+    // an inheritance model, even if it's inside an unused typedef.
+    if (Context.getTargetInfo().getCXXABI().isMicrosoft())
+      if (const MemberPointerType *MPTy = T->getAs<MemberPointerType>())
+        if (!MPTy->getClass()->isDependentType())
+          RequireCompleteType(Loc, T, 0);
+
   } else {
     // C99 6.7.5.2p1: If the element type is an incomplete or function type,
     // reject it (e.g. void ary[7], struct foo ary[7], void ary[7]())