[lld] r323282 - [WebAssembly] Add --relocatable test to test/wasm/weak-alias.ll. NFC.

Sam Clegg via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 23 15:36:10 PST 2018


Author: sbc
Date: Tue Jan 23 15:36:10 2018
New Revision: 323282

URL: http://llvm.org/viewvc/llvm-project?rev=323282&view=rev
Log:
[WebAssembly] Add --relocatable test to test/wasm/weak-alias.ll. NFC.

There seems to be an bug related to table relocations not being
written correctly in this case.  This change is intended simply
to increase the coverage, not fix the issue.

Modified:
    lld/trunk/test/wasm/weak-alias.ll

Modified: lld/trunk/test/wasm/weak-alias.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/wasm/weak-alias.ll?rev=323282&r1=323281&r2=323282&view=diff
==============================================================================
--- lld/trunk/test/wasm/weak-alias.ll (original)
+++ lld/trunk/test/wasm/weak-alias.ll Tue Jan 23 15:36:10 2018
@@ -135,3 +135,150 @@ entry:
 ; CHECK-NEXT:       - Index:           6
 ; CHECK-NEXT:         Name:            __wasm_call_ctors
 ; CHECK-NEXT: ...
+
+; RUN: lld -flavor wasm --relocatable %t.o %t2.o -o %t.reloc.o
+; RUN: obj2yaml %t.reloc.o | FileCheck %s -check-prefix=RELOC
+
+; RELOC:      --- !WASM
+; RELOC-NEXT: FileHeader:      
+; RELOC-NEXT:   Version:         0x00000001
+; RELOC-NEXT: Sections:        
+; RELOC-NEXT:   - Type:            TYPE
+; RELOC-NEXT:     Signatures:      
+; RELOC-NEXT:       - Index:           0
+; RELOC-NEXT:         ReturnType:      I32
+; RELOC-NEXT:         ParamTypes:      
+; RELOC-NEXT:   - Type:            IMPORT
+; RELOC-NEXT:     Imports:         
+; RELOC-NEXT:       - Module:          env
+; RELOC-NEXT:         Field:           __stack_pointer
+; RELOC-NEXT:         Kind:            GLOBAL
+; RELOC-NEXT:         GlobalType:      I32
+; RELOC-NEXT:         GlobalMutable:   false
+; RELOC-NEXT:   - Type:            FUNCTION
+; RELOC-NEXT:     FunctionTypes:   [ 0, 0, 0, 0, 0, 0 ]
+; RELOC-NEXT:   - Type:            TABLE
+; RELOC-NEXT:     Tables:          
+; RELOC-NEXT:       - ElemType:        ANYFUNC
+; RELOC-NEXT:         Limits:          
+; RELOC-NEXT:           Flags:           [ HAS_MAX ]
+; RELOC-NEXT:           Initial:         0x00000002
+; RELOC-NEXT:           Maximum:         0x00000002
+; RELOC-NEXT:   - Type:            MEMORY
+; RELOC-NEXT:     Memories:        
+; RELOC-NEXT:       - Initial:         0x00000000
+; RELOC-NEXT:   - Type:            EXPORT
+; RELOC-NEXT:     Exports:         
+; RELOC-NEXT:       - Name:            _start
+; RELOC-NEXT:         Kind:            FUNCTION
+; RELOC-NEXT:         Index:           0
+; RELOC-NEXT:       - Name:            alias_fn
+; RELOC-NEXT:         Kind:            FUNCTION
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:       - Name:            direct_fn
+; RELOC-NEXT:         Kind:            FUNCTION
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:       - Name:            call_direct
+; RELOC-NEXT:         Kind:            FUNCTION
+; RELOC-NEXT:         Index:           2
+; RELOC-NEXT:       - Name:            call_alias
+; RELOC-NEXT:         Kind:            FUNCTION
+; RELOC-NEXT:         Index:           3
+; RELOC-NEXT:       - Name:            call_alias_ptr
+; RELOC-NEXT:         Kind:            FUNCTION
+; RELOC-NEXT:         Index:           4
+; RELOC-NEXT:       - Name:            call_direct_ptr
+; RELOC-NEXT:         Kind:            FUNCTION
+; RELOC-NEXT:         Index:           5
+; RELOC-NEXT:   - Type:            ELEM
+; RELOC-NEXT:     Segments:        
+; RELOC-NEXT:       - Offset:          
+; RELOC-NEXT:           Opcode:          I32_CONST
+; RELOC-NEXT:           Value:           0
+; RELOC-NEXT:         Functions:       [ 1, 1 ]
+; RELOC-NEXT:   - Type:            CODE
+; RELOC-NEXT:     Relocations:     
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_FUNCTION_INDEX_LEB
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:         Offset:          0x00000004
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_FUNCTION_INDEX_LEB
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:         Offset:          0x00000012
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_FUNCTION_INDEX_LEB
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:         Offset:          0x0000001B
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_INDEX_LEB
+; RELOC-NEXT:         Index:           0
+; RELOC-NEXT:         Offset:          0x00000026
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_INDEX_LEB
+; RELOC-NEXT:         Index:           0
+; RELOC-NEXT:         Offset:          0x00000031
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_TABLE_INDEX_SLEB
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:         Offset:          0x00000039
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_FUNCTION_INDEX_LEB
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:         Offset:          0x00000042
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_INDEX_LEB
+; RELOC-NEXT:         Index:           0
+; RELOC-NEXT:         Offset:          0x0000004F
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_INDEX_LEB
+; RELOC-NEXT:         Index:           0
+; RELOC-NEXT:         Offset:          0x0000005C
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_INDEX_LEB
+; RELOC-NEXT:         Index:           0
+; RELOC-NEXT:         Offset:          0x00000067
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_TABLE_INDEX_SLEB
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:         Offset:          0x0000006F
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_FUNCTION_INDEX_LEB
+; RELOC-NEXT:         Index:           1
+; RELOC-NEXT:         Offset:          0x00000078
+; RELOC-NEXT:       - Type:            R_WEBASSEMBLY_GLOBAL_INDEX_LEB
+; RELOC-NEXT:         Index:           0
+; RELOC-NEXT:         Offset:          0x00000085
+; RELOC-NEXT:     Functions:       
+; RELOC-NEXT:       - Index:           0
+; RELOC-NEXT:         Locals:          
+; RELOC-NEXT:         Body:            1081808080000B
+; RELOC-NEXT:       - Index:           1
+; RELOC-NEXT:         Locals:          
+; RELOC-NEXT:         Body:            41000B
+; RELOC-NEXT:       - Index:           2
+; RELOC-NEXT:         Locals:          
+; RELOC-NEXT:         Body:            1081808080000B
+; RELOC-NEXT:       - Index:           3
+; RELOC-NEXT:         Locals:          
+; RELOC-NEXT:         Body:            1081808080000B
+; RELOC-NEXT:       - Index:           4
+; RELOC-NEXT:         Locals:          
+; RELOC-NEXT:           - Type:            I32
+; RELOC-NEXT:             Count:           2
+; RELOC-NEXT:         Body:            23808080800041106B220024808080800020004180808080003602081081808080002101200041106A24808080800020010B
+; RELOC-NEXT:       - Index:           5
+; RELOC-NEXT:         Locals:          
+; RELOC-NEXT:           - Type:            I32
+; RELOC-NEXT:             Count:           2
+; RELOC-NEXT:         Body:            23808080800041106B220024808080800020004181808080003602081081808080002101200041106A24808080800020010B
+; RELOC-NEXT:   - Type:            CUSTOM
+; RELOC-NEXT:     Name:            linking
+; RELOC-NEXT:     DataSize:        0
+; RELOC-NEXT:     SymbolInfo:      
+; RELOC-NEXT:       - Name:            alias_fn
+; RELOC-NEXT:         Flags:           [ BINDING_WEAK ]
+; RELOC-NEXT:   - Type:            CUSTOM
+; RELOC-NEXT:     Name:            name
+; RELOC-NEXT:     FunctionNames:   
+; RELOC-NEXT:       - Index:           0
+; RELOC-NEXT:         Name:            _start
+; RELOC-NEXT:       - Index:           1
+; RELOC-NEXT:         Name:            direct_fn
+; RELOC-NEXT:       - Index:           2
+; RELOC-NEXT:         Name:            call_direct
+; RELOC-NEXT:       - Index:           3
+; RELOC-NEXT:         Name:            call_alias
+; RELOC-NEXT:       - Index:           4
+; RELOC-NEXT:         Name:            call_alias_ptr
+; RELOC-NEXT:       - Index:           5
+; RELOC-NEXT:         Name:            call_direct_ptr
+; RELOC-NEXT: ...




More information about the llvm-commits mailing list