Reverting r233023 -- it caused test failures on Windows with MSVC x86.
http://bb.pgr.jp/builders/ninja-clang-i686-msc18-R/builds/572 llvm-svn: 233082
This commit is contained in:
parent
8fab26263e
commit
368701a0c8
|
@ -2483,10 +2483,6 @@ getCCForDeclaratorChunk(Sema &S, Declarator &D,
|
|||
// in a member pointer.
|
||||
IsCXXInstanceMethod =
|
||||
D.getTypeObject(I).Kind == DeclaratorChunk::MemberPointer;
|
||||
} else if (D.getContext() == Declarator::LambdaExprContext) {
|
||||
// This can only be a call operator for a lambda, which is an instance
|
||||
// method.
|
||||
IsCXXInstanceMethod = true;
|
||||
} else {
|
||||
// We're the innermost decl chunk, so must be a function declarator.
|
||||
assert(D.isFunctionDeclarator());
|
||||
|
|
|
@ -35,10 +35,10 @@ auto TemplateFuncionWithLocalLambda(T) {
|
|||
return LocalLambdaWithLocalType();
|
||||
}
|
||||
|
||||
// MSVC2013-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBE?A?3@XZ@A"
|
||||
// MSVC2013-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBE?A?3@XZ@A"
|
||||
// MSVC2015-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBE?A?3@XZ@A"
|
||||
// MSVC2015-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBE?A?3@XZ@A"
|
||||
// MSVC2013-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBA?A?3@XZ@A"
|
||||
// MSVC2013-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBA?A?3@XZ@A"
|
||||
// MSVC2015-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBA?A?3@XZ@A"
|
||||
// MSVC2015-DAG: "\01?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?1???R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBA?A?3@XZ@A"
|
||||
// CHECK: "\01??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z"
|
||||
// CHECK: "\01??R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBE?A?1@XZ"
|
||||
// CHECK: "\01??R<lambda_1>@??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBA?A?1@XZ"
|
||||
auto ValueFromTemplateFuncionWithLocalLambda = TemplateFuncionWithLocalLambda(0);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: %clang_cc1 -std=c++14 -triple i686-pc-win32 -fms-extensions -verify %s
|
||||
// RUN: %clang_cc1 -std=c++14 -triple i686-pc-mingw32 -verify %s
|
||||
// RUN: %clang_cc1 -std=c++14 -triple i686-pc-mingw32 -fms-extensions -verify %s
|
||||
// RUN: %clang_cc1 -triple i686-pc-win32 -fms-extensions -verify %s
|
||||
// RUN: %clang_cc1 -triple i686-pc-mingw32 -verify %s
|
||||
// RUN: %clang_cc1 -triple i686-pc-mingw32 -fms-extensions -verify %s
|
||||
|
||||
typedef void void_fun_t();
|
||||
typedef void __cdecl cdecl_fun_t();
|
||||
|
@ -242,19 +242,3 @@ namespace test8 {
|
|||
s.f(p); // expected-note {{in instantiation of member function 'test8::S<void *>::f' requested here}}
|
||||
}
|
||||
}
|
||||
|
||||
namespace test9 {
|
||||
// Used to fail when we forgot to make lambda call operators use __thiscall.
|
||||
template <typename F>
|
||||
decltype(auto) deduce(F f) {
|
||||
return &decltype(f)::operator();
|
||||
}
|
||||
template <typename C, typename R, typename A>
|
||||
decltype(auto) signaturehelper(R (C::*f)(A) const) {
|
||||
return R();
|
||||
}
|
||||
void f() {
|
||||
auto l = [](int x) { return x * 2; };
|
||||
decltype(signaturehelper(deduce(l))) p;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue