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 @_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 | |