]> granicus.if.org Git - clang/commit
Fix an edge case of mangling involving the combination of a lambda and typeid.
authorEli Friedman <eli.friedman@gmail.com>
Wed, 26 Sep 2012 04:34:21 +0000 (04:34 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Wed, 26 Sep 2012 04:34:21 +0000 (04:34 +0000)
commit80bfa3d125fa0b9c636977ea37b4a55b2c9b1037
tree34b2d495913dcff65c8a6cb3ea02c97d5af56ca2
parentd7a6b1640e565487d163023a6a2e83f55476ae96
Fix an edge case of mangling involving the combination of a lambda and typeid.
typeid (and a couple other non-standard places where we can transform an
unevaluated expression into an evaluated expression) is special
because it introduces an an expression evaluation context,
which conflicts with the mechanism to compute the current
lambda mangling context.  PR12123.

I would appreciate if someone would double-check that we get the mangling
correct with this patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164658 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Sema/Sema.h
lib/Parse/ParseDecl.cpp
lib/Parse/ParseExpr.cpp
lib/Parse/ParseExprCXX.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/TreeTransform.h
test/CodeGenCXX/mangle-lambdas.cpp