Reduced it a bit: template <class C, int (C::*M)(int)> void JSMethod(); class A { int printd(int); void printd(); }; void A::printd() { JSMethod<A, &A::printd>(); }
This test case will crash clang at the revision before this commit which means that something more mysterious/horrific is going on... On Fri, Sep 11, 2015 at 11:10 AM, David Majnemer <david.majne...@gmail.com> wrote: > Taking a look, would appreciate it if we didn't revert this until I give > it a fair shot. Shouldn't take too long. > > On Fri, Sep 11, 2015 at 10:58 AM, Hans Wennborg <h...@chromium.org> wrote: > >> 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@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. >> > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits