diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-12-10 00:59:31 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-12-10 00:59:31 +0000 |
| commit | 66747221e8749a0f228bd47f43fb43bdb749e81a (patch) | |
| tree | 91e41b7583ad5b8c44ce7ac0541defc97191213e /clang/lib/Sema/SemaTemplate.cpp | |
| parent | 1a74b6e11869fe221b7451b2db857472c35f14a6 (diff) | |
| download | bcm5719-llvm-66747221e8749a0f228bd47f43fb43bdb749e81a.tar.gz bcm5719-llvm-66747221e8749a0f228bd47f43fb43bdb749e81a.zip | |
Take into consideration calling convention when processing specializations.
This fixes pr18141.
llvm-svn: 196855
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 20a3d283314..b134f6ea510 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -6654,7 +6654,10 @@ Sema::CheckMemberSpecialization(NamedDecl *Member, LookupResult &Previous) { I != E; ++I) { NamedDecl *D = (*I)->getUnderlyingDecl(); if (CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(D)) { - if (Context.hasSameType(Function->getType(), Method->getType())) { + QualType Adjusted = Function->getType(); + if (!hasExplicitCallingConv(Adjusted)) + Adjusted = adjustCCAndNoReturn(Adjusted, Method->getType()); + if (Context.hasSameType(Adjusted, Method->getType())) { Instantiation = Method; InstantiatedFrom = Method->getInstantiatedFromMemberFunction(); MSInfo = Method->getMemberSpecializationInfo(); |

