Go to file
Faisal Vali 6eac881f66 Again: Teach TreeTransform and family how to transform generic
lambdas nested within templates and themselves.

A previous attempt http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130930/090049.html resulted in PR 17476, and was reverted,


The original TransformLambdaExpr (pre generic-lambdas) transformed the TypeSourceInfo of the Call operator in its own instantiation scope via TransformType.  This resulted in the parameters of the call operator being mapped to their transformed counterparts in an instantiation scope that would get popped off.
Then a call to TransformFunctionParameters would add the parameters and their transformed mappings (but newly created ones!) to the current instantiation scope. This would result in a disconnect between the new call operator's TSI parameters and those used to construct the call operator declaration. This was ok in the non-generic lambda world - but would cause issues with nested transformations (when non-generic and generics were interleaved) in the generic lambda world - that I somewhat kludged around initially - but this resulted in PR17476.

The new approach seems cleaner. We only do the transformation of the TypeSourceInfo - but we make sure to do it in the current instantiation scope so we don't lose the untransformed to transformed mappings of the ParmVarDecls when they get created.   

This does not yet include capturing.

Please see test file for examples.

This patch was LGTM'd by Doug:
http://llvm-reviews.chandlerc.com/D1784

llvm-svn: 193216
2013-10-23 00:51:58 +00:00
clang Again: Teach TreeTransform and family how to transform generic 2013-10-23 00:51:58 +00:00
clang-tools-extra Refactoring transform-specific options 2013-10-17 17:57:36 +00:00
compiler-rt [msan] Drain allocator cache when leaving thread. 2013-10-22 14:31:30 +00:00
debuginfo-tests don't use CHECK-NEXT because it may be on the same line. 2013-09-18 23:01:54 +00:00
libclc Port pocl's gen_convert.py script to libclc 2013-10-10 19:09:01 +00:00
libcxx Patch by GM: Turn off 'deprecated' warnings when building with MSVC, and add '-Werror=return-type' to catch funtions that aren't returning what they should. 2013-10-21 15:56:35 +00:00
libcxxabi Move local Db type out to namespace scope. 2013-10-22 16:45:48 +00:00
lld [PECOFF] Resource file extension is .res, not .rc. 2013-10-22 23:58:38 +00:00
lldb Improvements to the ValueObjectPrinter to behave correctly in more dynamic value cases 2013-10-22 22:42:14 +00:00
llvm R600: Fix handling of vector kernel arguments 2013-10-23 00:44:32 +00:00
openmp Update web pages to include style sheets and referenced documents missed before. 2013-10-03 11:55:28 +00:00
polly clang-format: No empty line after 'public:' 2013-10-15 14:41:02 +00:00