On Fri, Sep 11, 2015 at 12:46 PM, David Majnemer via cfe-commits < cfe-commits@lists.llvm.org> wrote:
> 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... > Are we perhaps failing to RequireCompleteType on M's type after substituting the value of C into it? 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 > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits