summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2018-01-09 22:44:02 +0000
committerSam Clegg <sbc@chromium.org>2018-01-09 22:44:02 +0000
commit270ed1b39c1727c14b539c5287a4fa74d8307594 (patch)
treedaf5e08909061cb4001291db417b3ae5e1da6206
parent94a72b991815c4eca5ca32fcd5ba60a0c863895a (diff)
downloadbcm5719-llvm-270ed1b39c1727c14b539c5287a4fa74d8307594.tar.gz
bcm5719-llvm-270ed1b39c1727c14b539c5287a4fa74d8307594.zip
[WebAssembly] MC: Use zero for provisional value of undefined symbols
This is more in line with what happens in the final executable when symbols are undefined (i.e. weak references). Differential Revision: https://reviews.llvm.org/D41840 llvm-svn: 322130
-rw-r--r--llvm/lib/MC/WasmObjectWriter.cpp4
-rw-r--r--llvm/test/MC/WebAssembly/external-data.ll2
-rw-r--r--llvm/test/MC/WebAssembly/init-fini-array.ll4
3 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/MC/WasmObjectWriter.cpp b/llvm/lib/MC/WasmObjectWriter.cpp
index 0f0b645492e..782479e2651 100644
--- a/llvm/lib/MC/WasmObjectWriter.cpp
+++ b/llvm/lib/MC/WasmObjectWriter.cpp
@@ -492,9 +492,9 @@ uint32_t
WasmObjectWriter::getProvisionalValue(const WasmRelocationEntry &RelEntry) {
const MCSymbolWasm *Sym = ResolveSymbol(*RelEntry.Symbol);
- // For undefined symbols, use a hopefully invalid value.
+ // For undefined symbols, use zero
if (!Sym->isDefined(/*SetUsed=*/false))
- return UINT32_MAX;
+ return 0;
uint32_t GlobalIndex = SymbolIndices[Sym];
const WasmGlobal& Global = Globals[GlobalIndex - NumGlobalImports];
diff --git a/llvm/test/MC/WebAssembly/external-data.ll b/llvm/test/MC/WebAssembly/external-data.ll
index 81a7fdec91d..73bb915b5fc 100644
--- a/llvm/test/MC/WebAssembly/external-data.ll
+++ b/llvm/test/MC/WebAssembly/external-data.ll
@@ -24,4 +24,4 @@
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 8
-; CHECK-NEXT: Content: FFFFFFFF
+; CHECK-NEXT: Content: '00000000'
diff --git a/llvm/test/MC/WebAssembly/init-fini-array.ll b/llvm/test/MC/WebAssembly/init-fini-array.ll
index b0a0d4b3555..c72ea736682 100644
--- a/llvm/test/MC/WebAssembly/init-fini-array.ll
+++ b/llvm/test/MC/WebAssembly/init-fini-array.ll
@@ -116,13 +116,13 @@ declare void @func3()
; CHECK-NEXT: Body: 1080808080000B
; CHECK-NEXT: - Index: 6
; CHECK-NEXT: Locals:
-; CHECK-NEXT: Body: 0240418080808000410041FFFFFFFF7F1081808080000D000F0B00000B
+; CHECK-NEXT: Body: 024041808080800041004180808080001081808080000D000F0B00000B
; CHECK-NEXT: - Index: 7
; CHECK-NEXT: Locals:
; CHECK-NEXT: Body: 1082808080000B
; CHECK-NEXT: - Index: 8
; CHECK-NEXT: Locals:
-; CHECK-NEXT: Body: 0240418180808000410041FFFFFFFF7F1081808080000D000F0B00000B
+; CHECK-NEXT: Body: 024041818080800041004180808080001081808080000D000F0B00000B
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 6
OpenPOWER on IntegriCloud