r247346 - [MS ABI] Make member pointers return true for isIncompleteType

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 11 10:58:01 PDT 2015


This made the Chromium build sad. For example:
http://build.chromium.org/p/chromium.fyi/builders/ClangToTWin/builds/3092/steps/compile/logs/stdio

Reduction:

$ clang -cc1 -triple i686-pc-windows-msvc18.0.0 -w -fms-extensions
-fms-compatibility -fms-compatibility-version=18.0 -std=c++11
-fdelayed-template-parsing a.ii

template <class C, int (C::*M)(int *, const int &, int &, int &)>
void JSMethod(char *, char *, int);
class A {
  int printd(int *, const int &, int &, int &);
  int printd_info;
  void printd() { JSMethod<A, &A::printd>("", "", printd_info); }
};


On Thu, Sep 10, 2015 at 2:52 PM, David Majnemer via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: majnemer
> Date: Thu Sep 10 16:52:00 2015
> New Revision: 247346
>
> URL: http://llvm.org/viewvc/llvm-project?rev=247346&view=rev
> Log:
> [MS ABI] Make member pointers return true for isIncompleteType
>
> The type of a member pointer is incomplete if it has no inheritance
> model.  This lets us reuse more general logic already embedded in clang.


More information about the cfe-commits mailing list