]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenCXX/move-assignment.cpp
Vendor import of clang 3.9.0 release r280324:
[FreeBSD/FreeBSD.git] / test / CodeGenCXX / move-assignment.cpp
1 // RUN: %clang_cc1 -emit-llvm -std=c++11 -o - %s -triple x86_64-pc-linux-gnu | FileCheck %s
2
3 struct A {
4   A &operator=(A&&);
5 };
6
7 struct B {
8   A a;
9   int i;
10   bool b;
11   char c;
12   long l;
13   float f;
14 };
15
16 void test1() {
17   B b1, b2;
18   b1 = static_cast<B&&>(b2);
19 }
20
21 // CHECK-LABEL: define {{.*}} @_ZN1BaSEOS_
22 // CHECK: call {{.*}} @_ZN1AaSEOS_
23 // CHECK-NOT: store
24 // CHECK: call {{.*}}memcpy{{.*}}, i64 24
25 // CHECK-NOT: store
26 // CHECK: ret