| // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm -o - %s | FileCheck %s |
| |
| namespace PR11418 { |
| struct NonPOD { |
| NonPOD(); |
| NonPOD(const NonPOD &); |
| NonPOD(NonPOD &&); |
| }; |
| |
| struct X { |
| NonPOD np; |
| int a = 17; |
| }; |
| |
| void check_copy(X x) { |
| X x2(x); |
| } |
| |
| void check_move(X x) { |
| X x3(static_cast<X&&>(x)); |
| } |
| |
| // CHECK: define linkonce_odr void @_ZN7PR114181XC2ERKS0_ |
| // CHECK-NOT: 17 |
| // CHECK: call void @_ZN7PR114186NonPODC1ERKS0_ |
| // CHECK-NOT: 17 |
| // CHECK: load i32, i32* |
| // CHECK-NOT: 17 |
| // CHECK: store i32 |
| // CHECK-NOT: 17 |
| // CHECK: ret |
| |
| // CHECK: define linkonce_odr void @_ZN7PR114181XC2EOS0_ |
| // CHECK-NOT: 17 |
| // CHECK: call void @_ZN7PR114186NonPODC1EOS0_ |
| // CHECK-NOT: 17 |
| // CHECK: load i32, i32* |
| // CHECK-NOT: 17 |
| // CHECK: store i32 |
| // CHECK-NOT: 17 |
| // CHECK: ret |
| } |