aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2019-07-22 17:48:03 +0000
committerHans Wennborg <hans@hanshq.net>2019-07-22 17:48:03 +0000
commita19f0b93e6dc998002be8a835308ed3d87021aea (patch)
tree7aa37a01010a6d4195ecc37353b7ccadc774f01a
parentb5847481c7cd64335235b5b88cc2af4b1105f274 (diff)
Merging r366500:
------------------------------------------------------------------------ r366500 | quantum | 2019-07-18 23:18:24 +0200 (Thu, 18 Jul 2019) | 13 lines [WebAssembly] fix bug in finding .tdata segment Summary: Fix bug in `wasm-ld`'s `Writer::createInitTLSFunction` that only finds `.tdata` if it's the first section. Reviewers: tlively, aheejin, sbc100 Reviewed By: sbc100 Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64947 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/lld/branches/release_90@366707 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/wasm/tls.ll6
-rw-r--r--wasm/Writer.cpp5
2 files changed, 6 insertions, 5 deletions
diff --git a/test/wasm/tls.ll b/test/wasm/tls.ll
index b570d4675..855180ddd 100644
--- a/test/wasm/tls.ll
+++ b/test/wasm/tls.ll
@@ -2,8 +2,8 @@
target triple = "wasm32-unknown-unknown"
-@tls1 = thread_local(localexec) global i32 1, align 4
@no_tls = global i32 0, align 4
+@tls1 = thread_local(localexec) global i32 1, align 4
@tls2 = thread_local(localexec) global i32 1, align 4
define i32* @tls1_addr() {
@@ -49,7 +49,7 @@ define i32* @tls2_addr() {
; CHECK-NEXT: Body: 0B
; CHECK-NEXT: - Index: 1
; CHECK-NEXT: Locals: []
-; CHECK-NEXT: Body: 20002401200041004108FC0800000B
+; CHECK-NEXT: Body: 20002401200041004108FC0801000B
; Expected body of __wasm_init_tls:
; local.get 0
@@ -57,7 +57,7 @@ define i32* @tls2_addr() {
; local.get 0
; i32.const 0
; i32.const 8
-; memory.init 0, 0
+; memory.init 1, 0
; end
; CHECK-NEXT: - Index: 2
diff --git a/wasm/Writer.cpp b/wasm/Writer.cpp
index 4ad91ab11..68e001ccc 100644
--- a/wasm/Writer.cpp
+++ b/wasm/Writer.cpp
@@ -771,9 +771,10 @@ void Writer::createInitTLSFunction() {
OutputSegment *tlsSeg = nullptr;
for (auto *seg : segments) {
- if (seg->name == ".tdata")
+ if (seg->name == ".tdata") {
tlsSeg = seg;
- break;
+ break;
+ }
}
writeUleb128(os, 0, "num locals");