blob: ef5052eea603e2121d65803b1acf441ae1f4e0d6 [file] [log] [blame]
John McCalld1e40d52011-10-02 01:16:38 +00001// RUN: %clang_cc1 -emit-llvm -o - -fblocks %s -O1 -triple x86_64-apple-darwin10.0.0 -fobjc-fragile-abi | FileCheck %s
Douglas Gregorf7603f62011-09-06 20:33:37 +00002
3// PR10835 / <rdar://problem/10050178>
4struct X {
5 X();
6 X(const X&);
7 ~X();
8};
9
10@interface NRVO
11@end
12
13@implementation NRVO
14// CHECK: define internal void @"\01-[NRVO getNRVO]"
15- (X)getNRVO {
16 X x;
17 // CHECK: tail call void @_ZN1XC1Ev
18 // CHECK-NEXT: ret void
19 return x;
20}
21@end
Douglas Gregorf8b7f712011-09-06 20:46:03 +000022
23X blocksNRVO() {
24 return ^{
25 // CHECK: define internal void @__blocksNRVO_block_invoke_0
26 X x;
27 // CHECK: tail call void @_ZN1XC1Ev
28 // CHECK-NEXT: ret void
29 return x;
30 }() ;
31}
32