// <rdar://problem/8684363>: clang++ not respecting __attribute__((used)) on destructors
struct X0 {
- // CHECK: define linkonce_odr void @_ZN2X0C1Ev
+ // CHECK: define linkonce_odr {{.*}} @_ZN2X0C1Ev
__attribute__((used)) X0() {}
- // CHECK: define linkonce_odr void @_ZN2X0D1Ev
+ // CHECK: define linkonce_odr {{.*}} @_ZN2X0D1Ev
__attribute__((used)) ~X0() {}
};
}
// CHECK: define internal void @__Block_byref_object_copy_
-// CHECK: call void @_ZN1AC1ERKS_
+// CHECK: call {{.*}} @_ZN1AC1ERKS_
// CHECK: define internal void @__Block_byref_object_dispose_
-// CHECK: call void @_ZN1AD1Ev
+// CHECK: call {{.*}} @_ZN1AD1Ev
// CHECK: define internal void @__copy_helper_block_
// CHECK: call void @_Block_object_assign
// CHECK: define internal void @__destroy_helper_block_
struct A { int x; A(int); ~A(); };
A f() { return A(0); }
// CHECK: define void @_Z1fv
-// CHECK: call void @_ZN1AC1Ei
+// CHECK: call {{.*}} @_ZN1AC1Ei
// CHECK-NEXT: ret void
// Verify that we do not elide copies when constructing a base class.
Derived(const Other &O);
};
- // CHECK: define void @_ZN13no_elide_base7DerivedC1ERKNS_5OtherE(%"struct.no_elide_base::Derived"* %this, %"struct.PR8683::A"* %O) unnamed_addr
+ // CHECK: define {{.*}} @_ZN13no_elide_base7DerivedC1ERKNS_5OtherE(%"struct.no_elide_base::Derived"* %this, %"struct.PR8683::A"* %O) unnamed_addr
Derived::Derived(const Other &O)
- // CHECK: call void @_ZNK13no_elide_base5OthercvNS_4BaseEEv
- // CHECK: call void @_ZN13no_elide_base4BaseC2ERKS0_
- // CHECK: call void @_ZN13no_elide_base4BaseD1Ev
+ // CHECK: call {{.*}} @_ZNK13no_elide_base5OthercvNS_4BaseEEv
+ // CHECK: call {{.*}} @_ZN13no_elide_base4BaseC2ERKS0_
+ // CHECK: call {{.*}} @_ZN13no_elide_base4BaseD1Ev
: Base(O)
{
- // CHECK: ret void
+ // CHECK: ret
}
}
struct A { virtual void a(); };
A x(A& y) { return y; }
-// CHECK: define linkonce_odr void @_ZN1AC1ERKS_(%struct.A* %this, %struct.A*) unnamed_addr
+// CHECK: define linkonce_odr {{.*}} @_ZN1AC1ERKS_(%struct.A* %this, %struct.A*) unnamed_addr
// CHECK: store i8** getelementptr inbounds ([3 x i8*]* @_ZTV1A, i64 0, i64 2)
X();
};
-// CHECK: define void @_ZN1XIbEC1Ev
-// CHECK: define void @_ZN1XIbEC2Ev
+// CHECK: define {{.*}} @_ZN1XIbEC1Ev
+// CHECK: define {{.*}} @_ZN1XIbEC2Ev
template <> X<bool>::X() = default;
-// CHECK: define weak_odr void @_ZN1XIiEC1Ev
-// CHECK: define weak_odr void @_ZN1XIiEC2Ev
+// CHECK: define weak_odr {{.*}} @_ZN1XIiEC1Ev
+// CHECK: define weak_odr {{.*}} @_ZN1XIiEC2Ev
template <typename T> X<T>::X() = default;
template X<int>::X();
-// CHECK: define linkonce_odr void @_ZN1XIcEC1Ev
-// CHECK: define linkonce_odr void @_ZN1XIcEC2Ev
+// CHECK: define linkonce_odr {{.*}} @_ZN1XIcEC1Ev
+// CHECK: define linkonce_odr {{.*}} @_ZN1XIcEC2Ev
X<char> x;
delegator::delegator(bool)
{}
-// CHECK: define void @_ZN9delegatorC1Ec
-// CHECK: void @_ZN9delegatorC1Eb
+// CHECK: define {{.*}} @_ZN9delegatorC1Ec
+// CHECK: {{.*}} @_ZN9delegatorC1Eb
// CHECK: void @__cxa_throw
// CHECK: void @_ZSt9terminatev
-// CHECK: void @_ZN9delegatorD1Ev
-// CHECK: define void @_ZN9delegatorC2Ec
-// CHECK: void @_ZN9delegatorC2Eb
+// CHECK: {{.*}} @_ZN9delegatorD1Ev
+// CHECK: define {{.*}} @_ZN9delegatorC2Ec
+// CHECK: {{.*}} @_ZN9delegatorC2Eb
// CHECK: void @__cxa_throw
// CHECK: void @_ZSt9terminatev
-// CHECK: void @_ZN9delegatorD2Ev
+// CHECK: {{.*}} @_ZN9delegatorD2Ev
delegator::delegator(char)
: delegator(true) {
throw 0;
}
-// CHECK: define void @_ZN9delegatorC1Ei
-// CHECK: void @_ZN9delegatorC1Ev
+// CHECK: define {{.*}} @_ZN9delegatorC1Ei
+// CHECK: {{.*}} @_ZN9delegatorC1Ev
// CHECK-NOT: void @_ZSt9terminatev
// CHECK: ret
// CHECK-NOT: void @_ZSt9terminatev
-// CHECK: define void @_ZN9delegatorC2Ei
-// CHECK: void @_ZN9delegatorC2Ev
+// CHECK: define {{.*}} @_ZN9delegatorC2Ei
+// CHECK: {{.*}} @_ZN9delegatorC2Ev
// CHECK-NOT: void @_ZSt9terminatev
// CHECK: ret
// CHECK-NOT: void @_ZSt9terminatev
void a() {
B b;
}
-// CHECK: call void @_ZN1BC1Ev
-// CHECK: define linkonce_odr void @_ZN1BC1Ev(%struct.B* %this) unnamed_addr
-// CHECK: call void @_ZN1AIiEC1Ev
+// CHECK: call {{.*}} @_ZN1BC1Ev
+// CHECK: define linkonce_odr {{.*}} @_ZN1BC1Ev(%struct.B* %this) unnamed_addr
+// CHECK: call {{.*}} @_ZN1AIiEC1Ev
A x = a();
}
-// CHECK: call void @_ZN1AC1ERKS_
-// CHECK: call void @_ZN1AD1Ev
+// CHECK: call {{.*}} @_ZN1AC1ERKS_
+// CHECK: call {{.*}} @_ZN1AD1Ev