diff options
author | Faisal Vali <faisalv@yahoo.com> | 2013-10-24 01:05:22 +0000 |
---|---|---|
committer | Faisal Vali <faisalv@yahoo.com> | 2013-10-24 01:05:22 +0000 |
commit | 66605d40a74aa26664050d41f900c37ad5fbbfe9 (patch) | |
tree | faf220d6acd14aea3facf87a550ef24d320da423 /clang/lib/Lex/ModuleMap.cpp | |
parent | e0bc980500bfe3c0a2b5117bb77f9131e944c7ad (diff) | |
download | llvm-66605d40a74aa26664050d41f900c37ad5fbbfe9.zip llvm-66605d40a74aa26664050d41f900c37ad5fbbfe9.tar.gz llvm-66605d40a74aa26664050d41f900c37ad5fbbfe9.tar.bz2 |
Fix an instantiation bug with nested generic lambdas and conversion to fptrs.
This patch fixes the typelocs of the conversion-operator and the conversion-operator-name and adds the parameters of the call operator to the FunctionProtoTypeLoc of the respective entities. Thus, when the template declarations (conversion operators) undergo deduction and instantiation/transformation/substitution - they add themselves to the local instantiation scope if needed.
This patch supports the following:
auto L = [](auto b) {
return [](auto a) ->decltype(a) { return a; };
};
int (*fp)(int) = L(8);
Richard LGTM'd this patch: http://llvm-reviews.chandlerc.com/D1831
Thanks!
llvm-svn: 193294
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions