// RUN: %clang_cc1 -emit-llvm -o - -fblocks %s -O1 -triple x86_64-apple-darwin10.0.0 -fobjc-runtime=macosx-fragile-10.5 | FileCheck %s // PR10835 / <rdar://problem/10050178> struct X { X(); X(const X&); ~X(); }; @interface NRVO @end @implementation NRVO // CHECK: define internal void @"\01-[NRVO getNRVO]" - (X)getNRVO { X x; // CHECK: tail call void @_ZN1XC1Ev // CHECK-NEXT: ret void return x; } @end X blocksNRVO() { return ^{ // CHECK-LABEL: define internal void @___Z10blocksNRVOv_block_invoke X x; // CHECK: tail call void @_ZN1XC1Ev // CHECK-NEXT: ret void return x; }() ; }