diff options
Diffstat (limited to 'clang/test/CXX/special/class.copy/implicit-move-def.cpp')
-rw-r--r-- | clang/test/CXX/special/class.copy/implicit-move-def.cpp | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/clang/test/CXX/special/class.copy/implicit-move-def.cpp b/clang/test/CXX/special/class.copy/implicit-move-def.cpp index 84a41c4622f..1f91945b4a9 100644 --- a/clang/test/CXX/special/class.copy/implicit-move-def.cpp +++ b/clang/test/CXX/special/class.copy/implicit-move-def.cpp @@ -1,4 +1,5 @@ -// RUN: %clang_cc1 -emit-llvm -o - -std=c++0x %s | FileCheck %s +// RUN: %clang_cc1 -emit-llvm -o - -std=c++0x %s | FileCheck -check-prefix=CHECK-ASSIGN %s +// RUN: %clang_cc1 -emit-llvm -o - -std=c++0x %s | FileCheck -check-prefix=CHECK-CTOR %s // construct @@ -55,30 +56,41 @@ void g() { d = D(); } +// PR10822 +struct I { + unsigned var[1]; +}; + +void h() { + I i; + i = I(); +} // move assignment ops -// CHECK: define linkonce_odr {{.*}} @_ZN1DaSEOS_ -// CHECK: call {{.*}} @_ZN1CaSEOS_ -// CHECK: call {{.*}} @_ZN1AaSEOS_ -// CHECK: call {{.*}} @_ZN1BaSEOS_ +// CHECK-ASSIGN: define linkonce_odr {{.*}} @_ZN1DaSEOS_ +// CHECK-ASSIGN: call {{.*}} @_ZN1CaSEOS_ +// CHECK-ASSIGN: call {{.*}} @_ZN1AaSEOS_ +// CHECK-ASSIGN: call {{.*}} @_ZN1BaSEOS_ // array loop -// CHECK: br i1 -// CHECK: call {{.*}} @_ZN1AaSEOS_ +// CHECK-ASSIGN: br i1 +// CHECK-ASSIGN: call {{.*}} @_ZN1AaSEOS_ -// CHECK: define linkonce_odr {{.*}} @_ZN1CaSEOS_ -// CHECK: call {{.*}} @_ZN1AaSEOS_ +// CHECK-ASSIGN: define linkonce_odr {{.*}} @_ZN1IaSEOS_ +// call void @llvm.memcpy. +// CHECK-ASSIGN: define linkonce_odr {{.*}} @_ZN1CaSEOS_ +// CHECK-ASSIGN: call {{.*}} @_ZN1AaSEOS_ // move ctors -// CHECK: define linkonce_odr void @_ZN1HC2EOS_ -// CHECK: call void @_ZN1GC2EOS_ -// CHECK: call void @_ZN1FC1EOS_ -// CHECK: call void @_ZN1EC1EOS_ +// CHECK-CTOR: define linkonce_odr void @_ZN1HC2EOS_ +// CHECK-CTOR: call void @_ZN1GC2EOS_ +// CHECK-CTOR: call void @_ZN1FC1EOS_ +// CHECK-CTOR: call void @_ZN1EC1EOS_ // array loop -// CHECK: br i1 -// CHECK: call void @_ZN1FC1EOS_ +// CHECK-CTOR: br i1 +// CHECK-CTOR: call void @_ZN1FC1EOS_ -// CHECK: define linkonce_odr void @_ZN1GC2EOS_ -// CHECK: call void @_ZN1EC1EOS_ +// CHECK-CTOR: define linkonce_odr void @_ZN1GC2EOS_ +// CHECK-CTOR: call void @_ZN1EC1EOS_ |