[llvm] r322130 - [WebAssembly] MC: Use zero for provisional value of undefined symbols

Sam Clegg via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 9 14:44:03 PST 2018


Author: sbc
Date: Tue Jan  9 14:44:02 2018
New Revision: 322130

URL: http://llvm.org/viewvc/llvm-project?rev=322130&view=rev
Log:
[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

Modified:
    llvm/trunk/lib/MC/WasmObjectWriter.cpp
    llvm/trunk/test/MC/WebAssembly/external-data.ll
    llvm/trunk/test/MC/WebAssembly/init-fini-array.ll

Modified: llvm/trunk/lib/MC/WasmObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WasmObjectWriter.cpp?rev=322130&r1=322129&r2=322130&view=diff
==============================================================================
--- llvm/trunk/lib/MC/WasmObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/WasmObjectWriter.cpp Tue Jan  9 14:44:02 2018
@@ -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];

Modified: llvm/trunk/test/MC/WebAssembly/external-data.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/WebAssembly/external-data.ll?rev=322130&r1=322129&r2=322130&view=diff
==============================================================================
--- llvm/trunk/test/MC/WebAssembly/external-data.ll (original)
+++ llvm/trunk/test/MC/WebAssembly/external-data.ll Tue Jan  9 14:44:02 2018
@@ -24,4 +24,4 @@
 ; CHECK-NEXT:         Offset:          
 ; CHECK-NEXT:           Opcode:          I32_CONST
 ; CHECK-NEXT:           Value:           8
-; CHECK-NEXT:         Content:         FFFFFFFF
+; CHECK-NEXT:         Content:         '00000000'

Modified: llvm/trunk/test/MC/WebAssembly/init-fini-array.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/WebAssembly/init-fini-array.ll?rev=322130&r1=322129&r2=322130&view=diff
==============================================================================
--- llvm/trunk/test/MC/WebAssembly/init-fini-array.ll (original)
+++ llvm/trunk/test/MC/WebAssembly/init-fini-array.ll Tue Jan  9 14:44:02 2018
@@ -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




More information about the llvm-commits mailing list