summaryrefslogtreecommitdiffstats
path: root/test/CodeGenCXX/pragma-init_seg.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2018-02-23 19:30:48 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2018-02-23 19:30:48 +0000
commit0e355701be41ad5bc6f83313a7f1ced24336c42d (patch)
treee6d410c6da69daa13c8ad94d2b32259d58fb976f /test/CodeGenCXX/pragma-init_seg.cpp
parentc036db5904d43222dd47aae0b1a3e5a2e0c44ad6 (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.cpp12
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")
}