diff options
Diffstat (limited to 'test/CodeGenCXX/cxx1z-copy-omission.cpp')
| -rw-r--r-- | test/CodeGenCXX/cxx1z-copy-omission.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/CodeGenCXX/cxx1z-copy-omission.cpp b/test/CodeGenCXX/cxx1z-copy-omission.cpp index 234e4b12589c..b33a21808175 100644 --- a/test/CodeGenCXX/cxx1z-copy-omission.cpp +++ b/test/CodeGenCXX/cxx1z-copy-omission.cpp @@ -6,6 +6,8 @@ struct A { A(const A&); ~A(); + operator bool(); + int arr[10]; }; @@ -79,3 +81,27 @@ void i() { // CHECK-LABEL: } } + +// CHECK-LABEL: define {{.*}} @_Z1jv( +void j() { + // CHECK: alloca %{{.*}}* + // CHECK: %[[OUTERTEMP:.*]] = alloca %{{.*}} + // CHECK: %[[INNERTEMP:.*]] = alloca %{{.*}} + // CHECK: call void @_ZN1AC1Ei(%{{.*}} %[[INNERTEMP]], i32 1) + // CHECK: call zeroext i1 @_ZN1AcvbEv(%{{.*}} %[[INNERTEMP]]) + // CHECK: br i1 + // + // CHECK: call void @_ZN1AC1EOS_(%{{.*}} %[[OUTERTEMP]], %{{.*}} %[[INNERTEMP]]) + // CHECK: br label + // + // CHECK: call void @_ZN1AC1Ei(%{{.*}} %[[OUTERTEMP]], i32 2) + // CHECK: br label + // + // CHECK: call void @_ZN1AD1Ev(%{{.*}} %[[INNERTEMP]]) + A &&a = A(1) ?: A(2); + + // CHECK: call void @_Z1iv() + i(); + + // CHECK: call void @_ZN1AD1Ev(%{{.*}} %[[OUTERTEMP]]) +} |
