From f5f4d2fd2e47463276a310dc5164dfbcdb582f1c Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Thu, 13 Dec 2012 23:37:17 +0000 Subject: Make sure the __invoke function for lambdas returns properly. Per bug report on IRC> llvm-svn: 170160 --- clang/test/CodeGenCXX/lambda-expressions.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'clang/test/CodeGenCXX/lambda-expressions.cpp') 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 -- cgit v1.1