1 // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm -o - %s | FileCheck %s 2 3 namespace PR11418 { 4 struct NonPOD { 5 NonPOD(); 6 NonPOD(const NonPOD &); 7 NonPOD(NonPOD &&); 8 }; 9 10 struct X { 11 NonPOD np; 12 int a = 17; 13 }; 14 check_copy(X x)15 void check_copy(X x) { 16 X x2(x); 17 } 18 check_move(X x)19 void check_move(X x) { 20 X x3(static_cast<X&&>(x)); 21 } 22 23 // CHECK: define linkonce_odr void @_ZN7PR114181XC2ERKS0_ 24 // CHECK-NOT: 17 25 // CHECK: call void @_ZN7PR114186NonPODC1ERKS0_ 26 // CHECK-NOT: 17 27 // CHECK: load i32, i32* 28 // CHECK-NOT: 17 29 // CHECK: store i32 30 // CHECK-NOT: 17 31 // CHECK: ret 32 33 // CHECK: define linkonce_odr void @_ZN7PR114181XC2EOS0_ 34 // CHECK-NOT: 17 35 // CHECK: call void @_ZN7PR114186NonPODC1EOS0_ 36 // CHECK-NOT: 17 37 // CHECK: load i32, i32* 38 // CHECK-NOT: 17 39 // CHECK: store i32 40 // CHECK-NOT: 17 41 // CHECK: ret 42 } 43