Home | History | Annotate | Download | only in CodeGenObjCXX
      1 // RUN: %clang_cc1 -emit-llvm -o - -fblocks %s -O1 -triple x86_64-apple-darwin10.0.0 -fobjc-runtime=macosx-fragile-10.5 | FileCheck %s
      2 
      3 // PR10835 / <rdar://problem/10050178>
      4 struct 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
     22 
     23 X blocksNRVO() {
     24   return ^{
     25     // CHECK-LABEL: define internal void @___Z10blocksNRVOv_block_invoke
     26     X x;
     27     // CHECK: tail call void @_ZN1XC1Ev
     28     // CHECK-NEXT: ret void
     29     return x;
     30   }() ;
     31 }
     32 
     33