diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-23 15:32:32 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-23 15:32:32 +0000 |
commit | 004d240b6a8f06227f0e819c15e949ffc5fbd7c2 (patch) | |
tree | 54f15eacbda38c0b41ee6f45afe09b1db1548ab7 /clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp | |
parent | 504d23551ee0b995b93f3177fa1728217abcfb53 (diff) | |
download | bcm5719-llvm-004d240b6a8f06227f0e819c15e949ffc5fbd7c2.tar.gz bcm5719-llvm-004d240b6a8f06227f0e819c15e949ffc5fbd7c2.zip |
Start setting dso_local for COFF.
With this there are still some GVs where we don't set dso_local
because setGVProperties is never called. I intend to fix that in
followup commits. This is just the bare minimum to teach
shouldAssumeDSOLocal what it should do for COFF.
llvm-svn: 325915
Diffstat (limited to 'clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp b/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp index d373e8391d7..6dc0158e262 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp +++ b/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp @@ -19,7 +19,7 @@ struct ChildOverride : Left, Right { extern "C" void foo(void *); void call_left_no_override(ChildNoOverride *child) { -// CHECK-LABEL: define void @"\01?call_left_no_override +// CHECK-LABEL: define dso_local void @"\01?call_left_no_override // CHECK: %[[CHILD:.*]] = load %struct.ChildNoOverride child->left(); @@ -34,7 +34,7 @@ void call_left_no_override(ChildNoOverride *child) { } void ChildOverride::left() { -// CHECK-LABEL: define x86_thiscallcc void @"\01?left@ChildOverride@@UAEXXZ" +// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?left@ChildOverride@@UAEXXZ" // CHECK-SAME: (%struct.ChildOverride* %[[THIS:.*]]) // // No need to adjust 'this' as the ChildOverride's layout begins with Left. @@ -49,7 +49,7 @@ void ChildOverride::left() { } void call_left_override(ChildOverride *child) { -// CHECK-LABEL: define void @"\01?call_left_override +// CHECK-LABEL: define dso_local void @"\01?call_left_override // CHECK: %[[CHILD:.*]] = load %struct.ChildOverride child->left(); @@ -63,7 +63,7 @@ void call_left_override(ChildOverride *child) { } void call_right_no_override(ChildNoOverride *child) { -// CHECK-LABEL: define void @"\01?call_right_no_override +// CHECK-LABEL: define dso_local void @"\01?call_right_no_override // CHECK: %[[CHILD:.*]] = load %struct.ChildNoOverride child->right(); @@ -83,7 +83,7 @@ void call_right_no_override(ChildNoOverride *child) { } void ChildOverride::right() { -// CHECK-LABEL: define x86_thiscallcc void @"\01?right@ChildOverride@@UAEXXZ"(i8* +// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?right@ChildOverride@@UAEXXZ"(i8* // // ChildOverride::right gets 'this' cast to Right* in ECX (i.e. this+4) so we // need to adjust 'this' before use. @@ -106,7 +106,7 @@ void ChildOverride::right() { } void call_right_override(ChildOverride *child) { -// CHECK-LABEL: define void @"\01?call_right_override +// CHECK-LABEL: define dso_local void @"\01?call_right_override // CHECK: %[[CHILD:.*]] = load %struct.ChildOverride child->right(); @@ -132,7 +132,7 @@ struct GrandchildOverride : ChildOverride { }; void GrandchildOverride::right() { -// CHECK-LABEL: define x86_thiscallcc void @"\01?right@GrandchildOverride@@UAEXXZ"(i8* +// CHECK-LABEL: define dso_local x86_thiscallcc void @"\01?right@GrandchildOverride@@UAEXXZ"(i8* // // CHECK: %[[THIS_STORE:.*]] = alloca %struct.GrandchildOverride*, align 4 // CHECK: %[[THIS_ADDR:.*]] = alloca %struct.GrandchildOverride*, align 4 @@ -202,7 +202,7 @@ struct AsymmetricChild : LeftWithNonVirtualDtor, Right { }; void call_asymmetric_child_complete_dtor() { - // CHECK-LABEL: define void @"\01?call_asymmetric_child_complete_dtor@@YAXXZ" + // CHECK-LABEL: define dso_local void @"\01?call_asymmetric_child_complete_dtor@@YAXXZ" AsymmetricChild obj; // CHECK: call x86_thiscallcc %struct.AsymmetricChild* @"\01??0AsymmetricChild@@QAE@XZ"(%struct.AsymmetricChild* %[[OBJ:.*]]) // CHECK-NOT: getelementptr |