43 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm -o - %s | FileCheck %s2 3namespace 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 15 void check_copy(X x) {16 X x2(x);17 }18 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: 1725 // CHECK: call void @_ZN7PR114186NonPODC1ERKS0_26 // CHECK-NOT: 1727 // CHECK: load i32, ptr28 // CHECK-NOT: 1729 // CHECK: store i3230 // CHECK-NOT: 1731 // CHECK: ret32 33 // CHECK: define linkonce_odr void @_ZN7PR114181XC2EOS0_34 // CHECK-NOT: 1735 // CHECK: call void @_ZN7PR114186NonPODC1EOS0_36 // CHECK-NOT: 1737 // CHECK: load i32, ptr38 // CHECK-NOT: 1739 // CHECK: store i3240 // CHECK-NOT: 1741 // CHECK: ret42}43