1// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm -o - %s | FileCheck %s
2
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 @_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