aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CodeGenCXX/lambda-expressions.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-12-13 23:37:17 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-12-13 23:37:17 +0000
commitf5f4d2fd2e47463276a310dc5164dfbcdb582f1c (patch)
tree342c137b9527268110cfb1dde559647b78559e60 /clang/test/CodeGenCXX/lambda-expressions.cpp
parent7bb2f97a90c73e709ac299947dae2cd7b4953af3 (diff)
downloadllvm-f5f4d2fd2e47463276a310dc5164dfbcdb582f1c.zip
llvm-f5f4d2fd2e47463276a310dc5164dfbcdb582f1c.tar.gz
llvm-f5f4d2fd2e47463276a310dc5164dfbcdb582f1c.tar.bz2
Make sure the __invoke function for lambdas returns properly. Per bug report on IRC>
llvm-svn: 170160
Diffstat (limited to 'clang/test/CodeGenCXX/lambda-expressions.cpp')
-rw-r--r--clang/test/CodeGenCXX/lambda-expressions.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/lambda-expressions.cpp b/clang/test/CodeGenCXX/lambda-expressions.cpp
index 19195c9..e4bdf92 100644
--- a/clang/test/CodeGenCXX/lambda-expressions.cpp
+++ b/clang/test/CodeGenCXX/lambda-expressions.cpp
@@ -80,6 +80,15 @@ int g() {
return [] { return r; } ();
};
+// CHECK: define internal void @"_ZZ1hvEN3$_78__invokeEv"(%struct.A* noalias sret %agg.result)
+// CHECK-NEXT: entry:
+// CHECK-NEXT: call void @"_ZZ1hvENK3$_7clEv"(%struct.A* sret %agg.result,
+// CHECK-NEXT: ret void
+struct A { ~A(); };
+void h() {
+ A (*h)() = [] { return A(); };
+}
+
// CHECK: define internal i32 @"_ZZ1fvEN3$_58__invokeEii"
// CHECK: store i32
// CHECK-NEXT: store i32