1*b39be1f3SNick Lewycky // RUN: %clang_cc1 -emit-llvm -std=c++11 -o - %s -triple x86_64-pc-linux-gnu | FileCheck %s 2*b39be1f3SNick Lewycky 3*b39be1f3SNick Lewycky struct A { 4*b39be1f3SNick Lewycky A &operator=(A&&); 5*b39be1f3SNick Lewycky }; 6*b39be1f3SNick Lewycky 7*b39be1f3SNick Lewycky struct B { 8*b39be1f3SNick Lewycky A a; 9*b39be1f3SNick Lewycky int i; 10*b39be1f3SNick Lewycky bool b; 11*b39be1f3SNick Lewycky char c; 12*b39be1f3SNick Lewycky long l; 13*b39be1f3SNick Lewycky float f; 14*b39be1f3SNick Lewycky }; 15*b39be1f3SNick Lewycky test1()16*b39be1f3SNick Lewyckyvoid test1() { 17*b39be1f3SNick Lewycky B b1, b2; 18*b39be1f3SNick Lewycky b1 = static_cast<B&&>(b2); 19*b39be1f3SNick Lewycky } 20*b39be1f3SNick Lewycky 21*b39be1f3SNick Lewycky // CHECK-LABEL: define {{.*}} @_ZN1BaSEOS_ 22*b39be1f3SNick Lewycky // CHECK: call {{.*}} @_ZN1AaSEOS_ 23*b39be1f3SNick Lewycky // CHECK-NOT: store 24*b39be1f3SNick Lewycky // CHECK: call {{.*}}memcpy{{.*}}, i64 24 25*b39be1f3SNick Lewycky // CHECK-NOT: store 26*b39be1f3SNick Lewycky // CHECK: ret 27