reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | // RUN: %clang_cc1 -emit-llvm -o - -fblocks %s -O1 -fno-experimental-new-pass-manager -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; }() ; } |