blob: 46da7cd013b931ff0df6234f702aef6e145eebc1 [file] [log] [blame]
// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
struct X {
X();
X(X&&);
};
// CHECK-LABEL: define void @_Z7test_00b
X test_00(bool b) {
if (b) {
// CHECK-NOT: call void @_ZN1XC1EOS_
// CHECK: call void @_ZN1XC1Ev
// CHECK-NEXT: br label %return
X x;
return x;
} else {
// CHECK-NOT: call void @_ZN1XC1EOS_
// CHECK: call void @_ZN1XC1Ev
// CHECK-NEXT: br label %return
X x;
return x;
}
}
// CHECK-LABEL: define void @_Z7test_01b
X test_01(bool b) {
if (b) {
// CHECK-NOT: call void @_ZN1XC1EOS_
// CHECK: call void @_ZN1XC1Ev
// CHECK-NEXT: br label %return
X x;
return x;
}
// CHECK-NOT: call void @_ZN1XC1EOS_
// CHECK: call void @_ZN1XC1Ev
// CHECK-NEXT: br label %return
X x;
return x;
}
// CHECK-LABEL: define void @_Z7test_02b
X test_02(bool b) {
// CHECK: call void @_ZN1XC1Ev
X x;
if (b) {
// CHECK-NOT: call void @_ZN1XC1EOS_
// CHECK: call void @_ZN1XC1Ev
// CHECK-NEXT: br label %return
X y;
return y;
}
// CHECK-NOT: call void @_ZN1XC1Ev
// CHECK: call void @_ZN1XC1EOS_
// CHECK-NEXT: br label %return
return x;
}