diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-23 19:30:48 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-23 19:30:48 +0000 |
commit | 0e355701be41ad5bc6f83313a7f1ced24336c42d (patch) | |
tree | e6d410c6da69daa13c8ad94d2b32259d58fb976f /test/CodeGenCXX/pragma-init_seg.cpp | |
parent | c036db5904d43222dd47aae0b1a3e5a2e0c44ad6 (diff) |
Bring r325915 back.
The tests that failed on a windows host have been fixed.
Original message:
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@325940 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/pragma-init_seg.cpp')
-rw-r--r-- | test/CodeGenCXX/pragma-init_seg.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/test/CodeGenCXX/pragma-init_seg.cpp b/test/CodeGenCXX/pragma-init_seg.cpp index 1ed841f23d..8fecb1e195 100644 --- a/test/CodeGenCXX/pragma-init_seg.cpp +++ b/test/CodeGenCXX/pragma-init_seg.cpp @@ -9,17 +9,17 @@ int f(); namespace simple_init { #pragma init_seg(compiler) int x = f(); -// CHECK: @"\01?x@simple_init@@3HA" = global i32 0, align 4 +// CHECK: @"\01?x@simple_init@@3HA" = dso_local global i32 0, align 4 // CHECK: @__cxx_init_fn_ptr = private constant void ()* @"\01??__Ex@simple_init@@YAXXZ", section ".CRT$XCC" #pragma init_seg(lib) int y = f(); -// CHECK: @"\01?y@simple_init@@3HA" = global i32 0, align 4 +// CHECK: @"\01?y@simple_init@@3HA" = dso_local global i32 0, align 4 // CHECK: @__cxx_init_fn_ptr.1 = private constant void ()* @"\01??__Ey@simple_init@@YAXXZ", section ".CRT$XCL" #pragma init_seg(user) int z = f(); -// CHECK: @"\01?z@simple_init@@3HA" = global i32 0, align 4 +// CHECK: @"\01?z@simple_init@@3HA" = dso_local global i32 0, align 4 // No function pointer! This one goes on @llvm.global_ctors. } @@ -35,7 +35,7 @@ int x = f(); namespace selectany_init { int __declspec(selectany) x = f(); -// CHECK: @"\01?x@selectany_init@@3HA" = weak_odr global i32 0, comdat, align 4 +// CHECK: @"\01?x@selectany_init@@3HA" = weak_odr dso_local global i32 0, comdat, align 4 // CHECK: @__cxx_init_fn_ptr.3 = private constant void ()* @"\01??__Ex@selectany_init@@YAXXZ", section ".asdf", comdat($"\01?x@selectany_init@@3HA") } @@ -43,7 +43,7 @@ namespace explicit_template_instantiation { template <typename T> struct A { static const int x; }; template <typename T> const int A<T>::x = f(); template struct A<int>; -// CHECK: @"\01?x@?$A@H@explicit_template_instantiation@@2HB" = weak_odr global i32 0, comdat, align 4 +// CHECK: @"\01?x@?$A@H@explicit_template_instantiation@@2HB" = weak_odr dso_local global i32 0, comdat, align 4 // CHECK: @__cxx_init_fn_ptr.4 = private constant void ()* @"\01??__Ex@?$A@H@explicit_template_instantiation@@2HB@YAXXZ", section ".asdf", comdat($"\01?x@?$A@H@explicit_template_instantiation@@2HB") } @@ -51,7 +51,7 @@ namespace implicit_template_instantiation { template <typename T> struct A { static const int x; }; template <typename T> const int A<T>::x = f(); int g() { return A<int>::x; } -// CHECK: @"\01?x@?$A@H@implicit_template_instantiation@@2HB" = linkonce_odr global i32 0, comdat, align 4 +// CHECK: @"\01?x@?$A@H@implicit_template_instantiation@@2HB" = linkonce_odr dso_local global i32 0, comdat, align 4 // CHECK: @__cxx_init_fn_ptr.5 = private constant void ()* @"\01??__Ex@?$A@H@implicit_template_instantiation@@2HB@YAXXZ", section ".asdf", comdat($"\01?x@?$A@H@implicit_template_instantiation@@2HB") } |