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