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 
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 @_ZN7PR114181XC2EOS0_
24   // CHECK-NOT: 17
25   // CHECK: call void @_ZN7PR114186NonPODC1EOS0_
26   // CHECK-NOT: 17
27   // CHECK: load i32*
28   // CHECK-NOT: 17
29   // CHECK: store i32
30   // CHECK-NOT: 17
31   // CHECK: ret
32 
33   // CHECK: define linkonce_odr void @_ZN7PR114181XC2ERKS0_
34   // CHECK-NOT: 17
35   // CHECK: call void @_ZN7PR114186NonPODC1ERKS0_
36   // CHECK-NOT: 17
37   // CHECK: load i32*
38   // CHECK-NOT: 17
39   // CHECK: store i32
40   // CHECK-NOT: 17
41   // CHECK: ret
42 }
43