diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-12-13 23:37:17 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-12-13 23:37:17 +0000 |
commit | 50f089a6e1837cb81f8d1830bda6db619e422a2e (patch) | |
tree | 78386e46a4f33ff2bcd8c05997108c33bcfff6b3 /test/CodeGenCXX/lambda-expressions.cpp | |
parent | c9a9177e699897a71670ae211fa053240f41460e (diff) |
Make sure the __invoke function for lambdas returns properly. Per bug report on IRC>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/lambda-expressions.cpp')
-rw-r--r-- | test/CodeGenCXX/lambda-expressions.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/test/CodeGenCXX/lambda-expressions.cpp b/test/CodeGenCXX/lambda-expressions.cpp index 19195c9dd2..e4bdf9202a 100644 --- a/test/CodeGenCXX/lambda-expressions.cpp +++ b/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 |