; RELOC: - Type: DATA
; RELOC-NEXT: Relocations:
; RELOC-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32
-; RELOC-NEXT: Index: 5
+; RELOC-NEXT: Index: 4
; RELOC-NEXT: Offset: 0x00000018
; RELOC-NEXT: Segments:
; RELOC-NEXT: - SectionOffset: 6
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Segment: 2
; RELOC-NEXT: Size: 4
-; RELOC: - Index: 5
+; RELOC: - Index: 4
; RELOC-NEXT: Kind: DATA
; RELOC-NEXT: Name: hello_str
; RELOC-NEXT: Flags: [ ]
; RELOC: Name: linking
; RELOC-NEXT: SymbolTable:
; RELOC-NEXT: - Index: 0
-; RELOC-NEXT: Kind: DATA
-; RELOC-NEXT: Name: __dso_handle
-; RELOC-NEXT: Flags: [ BINDING_WEAK, VISIBILITY_HIDDEN, UNDEFINED ]
-; RELOC-NEXT: - Index: 1
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: func1
; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; RELOC-NEXT: Function: 0
-; RELOC-NEXT: - Index: 2
+; RELOC-NEXT: - Index: 1
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: func2
; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; RELOC-NEXT: Function: 1
-; RELOC-NEXT: - Index: 3
+; RELOC-NEXT: - Index: 2
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: func3
; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; RELOC-NEXT: Function: 2
-; RELOC-NEXT: - Index: 4
+; RELOC-NEXT: - Index: 3
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: func4
; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; RELOC-NEXT: Function: 3
-; RELOC-NEXT: - Index: 5
+; RELOC-NEXT: - Index: 4
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: __cxa_atexit
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 4
-; RELOC-NEXT: - Index: 6
+; RELOC-NEXT: - Index: 5
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: _start
; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; RELOC-NEXT: Function: 5
-; RELOC-NEXT: - Index: 7
+; RELOC-NEXT: - Index: 6
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: .Lcall_dtors.101
; RELOC-NEXT: Flags: [ BINDING_LOCAL ]
; RELOC-NEXT: Function: 6
-; RELOC-NEXT: - Index: 8
+; RELOC-NEXT: - Index: 7
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: .Lregister_call_dtors.101
; RELOC-NEXT: Flags: [ BINDING_LOCAL ]
; RELOC-NEXT: Function: 7
+; RELOC-NEXT: - Index: 8
+; RELOC-NEXT: Kind: DATA
+; RELOC-NEXT: Name: __dso_handle
+; RELOC-NEXT: Flags: [ BINDING_WEAK, VISIBILITY_HIDDEN, UNDEFINED ]
; RELOC-NEXT: - Index: 9
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: .Lcall_dtors.1001
; RELOC-NEXT: Flags: [ BINDING_LOCAL ]
; RELOC-NEXT: Function: 9
; RELOC-NEXT: - Index: 11
-; RELOC-NEXT: Kind: GLOBAL
-; RELOC-NEXT: Name: __stack_pointer
-; RELOC-NEXT: Flags: [ UNDEFINED ]
-; RELOC-NEXT: Global: 0
-; RELOC-NEXT: - Index: 12
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: myctor
; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; RELOC-NEXT: Function: 10
-; RELOC-NEXT: - Index: 13
+; RELOC-NEXT: - Index: 12
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: mydtor
; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; RELOC-NEXT: Function: 11
+; RELOC-NEXT: - Index: 13
+; RELOC-NEXT: Kind: GLOBAL
+; RELOC-NEXT: Name: __stack_pointer
+; RELOC-NEXT: Flags: [ UNDEFINED ]
+; RELOC-NEXT: Global: 0
; RELOC-NEXT: - Index: 14
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: .Lcall_dtors.101
; RELOC-NEXT: Function: 17
; RELOC-NEXT: InitFunctions:
; RELOC-NEXT: - Priority: 101
-; RELOC-NEXT: Symbol: 1
+; RELOC-NEXT: Symbol: 0
; RELOC-NEXT: - Priority: 101
-; RELOC-NEXT: Symbol: 2
+; RELOC-NEXT: Symbol: 1
; RELOC-NEXT: - Priority: 101
-; RELOC-NEXT: Symbol: 8
+; RELOC-NEXT: Symbol: 7
; RELOC-NEXT: - Priority: 101
-; RELOC-NEXT: Symbol: 12
+; RELOC-NEXT: Symbol: 11
; RELOC-NEXT: - Priority: 101
; RELOC-NEXT: Symbol: 15
; RELOC-NEXT: - Priority: 202
-; RELOC-NEXT: Symbol: 12
+; RELOC-NEXT: Symbol: 11
; RELOC-NEXT: - Priority: 202
; RELOC-NEXT: Symbol: 17
; RELOC-NEXT: - Priority: 1001
-; RELOC-NEXT: Symbol: 1
+; RELOC-NEXT: Symbol: 0
; RELOC-NEXT: - Priority: 1001
; RELOC-NEXT: Symbol: 10
; RELOC-NEXT: - Priority: 2002
-; RELOC-NEXT: Symbol: 12
+; RELOC-NEXT: Symbol: 11
; RELOC-NEXT: - Priority: 2002
; RELOC-NEXT: Symbol: 19
; RELOC-NEXT: - Type: CUSTOM
; CHECK-NEXT: - Type: CODE
; CHECK-NEXT: Relocations:
; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB
-; CHECK-NEXT: Index: 2
+; CHECK-NEXT: Index: 1
; CHECK-NEXT: Offset: 0x00000004
; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; CHECK-NEXT: Index: 0
+; CHECK-NEXT: Index: 2
; CHECK-NEXT: Offset: 0x0000000A
; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; CHECK-NEXT: Index: 3
+; CHECK-NEXT: Index: 4
; CHECK-NEXT: Offset: 0x00000013
; CHECK-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; CHECK-NEXT: Index: 4
+; CHECK-NEXT: Index: 5
; CHECK-NEXT: Offset: 0x0000001A
; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_SLEB
-; CHECK-NEXT: Index: 8
+; CHECK-NEXT: Index: 7
; CHECK-NEXT: Offset: 0x00000026
; CHECK-NEXT: Functions:
; CHECK-NEXT: - Index: 3
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Relocations:
; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32
-; CHECK-NEXT: Index: 6
+; CHECK-NEXT: Index: 3
; CHECK-NEXT: Offset: 0x00000012
; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32
-; CHECK-NEXT: Index: 3
+; CHECK-NEXT: Index: 4
; CHECK-NEXT: Offset: 0x0000001B
; CHECK-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_I32
-; CHECK-NEXT: Index: 4
+; CHECK-NEXT: Index: 5
; CHECK-NEXT: Offset: 0x00000024
; CHECK-NEXT: - Type: R_WEBASSEMBLY_MEMORY_ADDR_I32
-; CHECK-NEXT: Index: 5
+; CHECK-NEXT: Index: 12
; CHECK-NEXT: Offset: 0x0000002D
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 6
; CHECK-NEXT: SymbolTable:
; CHECK-NEXT: - Index: 0
; CHECK-NEXT: Kind: FUNCTION
-; CHECK-NEXT: Name: puts
-; CHECK-NEXT: Flags: [ UNDEFINED ]
-; CHECK-NEXT: Function: 0
-; CHECK-NEXT: - Index: 1
-; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Name: hello
; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; CHECK-NEXT: Function: 3
-; CHECK-NEXT: - Index: 2
+; CHECK-NEXT: - Index: 1
; CHECK-NEXT: Kind: DATA
; CHECK-NEXT: Name: hello_str
; CHECK-NEXT: Flags: [ ]
; CHECK-NEXT: Segment: 0
; CHECK-NEXT: Size: 7
+; CHECK-NEXT: - Index: 2
+; CHECK-NEXT: Kind: FUNCTION
+; CHECK-NEXT: Name: puts
+; CHECK-NEXT: Flags: [ UNDEFINED ]
+; CHECK-NEXT: Function: 0
; CHECK-NEXT: - Index: 3
; CHECK-NEXT: Kind: FUNCTION
+; CHECK-NEXT: Name: my_func
+; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
+; CHECK-NEXT: Function: 4
+; CHECK-NEXT: - Index: 4
+; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Name: foo_import
; CHECK-NEXT: Flags: [ UNDEFINED ]
; CHECK-NEXT: Function: 1
-; CHECK-NEXT: - Index: 4
+; CHECK-NEXT: - Index: 5
; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Name: bar_import
; CHECK-NEXT: Flags: [ BINDING_WEAK, UNDEFINED ]
; CHECK-NEXT: Function: 2
-; CHECK-NEXT: - Index: 5
-; CHECK-NEXT: Kind: DATA
-; CHECK-NEXT: Name: data_import
-; CHECK-NEXT: Flags: [ UNDEFINED ]
; CHECK-NEXT: - Index: 6
; CHECK-NEXT: Kind: FUNCTION
-; CHECK-NEXT: Name: my_func
-; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
-; CHECK-NEXT: Function: 4
-; CHECK-NEXT: - Index: 7
-; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Name: func_comdat
; CHECK-NEXT: Flags: [ BINDING_WEAK ]
; CHECK-NEXT: Function: 5
-; CHECK-NEXT: - Index: 8
+; CHECK-NEXT: - Index: 7
; CHECK-NEXT: Kind: DATA
; CHECK-NEXT: Name: data_comdat
; CHECK-NEXT: Flags: [ BINDING_WEAK ]
; CHECK-NEXT: Segment: 5
; CHECK-NEXT: Size: 3
-; CHECK-NEXT: - Index: 9
+; CHECK-NEXT: - Index: 8
; CHECK-NEXT: Kind: DATA
; CHECK-NEXT: Name: func_addr1
; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; CHECK-NEXT: Segment: 1
; CHECK-NEXT: Size: 4
-; CHECK-NEXT: - Index: 10
+; CHECK-NEXT: - Index: 9
; CHECK-NEXT: Kind: DATA
; CHECK-NEXT: Name: func_addr2
; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; CHECK-NEXT: Segment: 2
; CHECK-NEXT: Size: 4
-; CHECK-NEXT: - Index: 11
+; CHECK-NEXT: - Index: 10
; CHECK-NEXT: Kind: DATA
; CHECK-NEXT: Name: func_addr3
; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; CHECK-NEXT: Segment: 3
; CHECK-NEXT: Size: 4
-; CHECK-NEXT: - Index: 12
+; CHECK-NEXT: - Index: 11
; CHECK-NEXT: Kind: DATA
; CHECK-NEXT: Name: data_addr1
; CHECK-NEXT: Flags: [ VISIBILITY_HIDDEN ]
; CHECK-NEXT: Segment: 4
; CHECK-NEXT: Size: 4
+; CHECK-NEXT: - Index: 12
+; CHECK-NEXT: Kind: DATA
+; CHECK-NEXT: Name: data_import
+; CHECK-NEXT: Flags: [ UNDEFINED ]
; CHECK-NEXT: SegmentInfo:
; CHECK-NEXT: - Index: 0
; CHECK-NEXT: Name: .rodata.hello_str
; CHECK-NEXT: - Type: CODE
; CHECK-NEXT: Relocations:
; CHECK-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
-; CHECK-NEXT: Index: 0
+; CHECK-NEXT: Index: 1
; CHECK-NEXT: Offset: 0x00000004
; CHECK-NEXT: Functions:
; CHECK-NEXT: - Index: 0
; CHECK-NEXT: Name: linking
; CHECK-NEXT: SymbolTable:
; CHECK-NEXT: - Index: 0
-; CHECK-NEXT: Kind: GLOBAL
-; CHECK-NEXT: Name: __stack_pointer
-; CHECK-NEXT: Flags: [ UNDEFINED ]
-; CHECK-NEXT: Global: 0
-; CHECK-NEXT: - Index: 1
; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Name: _start
; CHECK-NEXT: Flags: [ ]
; CHECK-NEXT: Function: 0
+; CHECK-NEXT: - Index: 1
+; CHECK-NEXT: Kind: GLOBAL
+; CHECK-NEXT: Name: __stack_pointer
+; CHECK-NEXT: Flags: [ UNDEFINED ]
+; CHECK-NEXT: Global: 0
; CHECK-NEXT: - Type: CUSTOM
; CHECK-NEXT: Name: name
; CHECK-NEXT: FunctionNames:
; CHECK-NEXT: - Name: call_alias
; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Index: 3
+; CHECK-NEXT: - Name: alias_fn
+; CHECK-NEXT: Kind: FUNCTION
+; CHECK-NEXT: Index: 1
; CHECK-NEXT: - Name: call_alias_ptr
; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Index: 4
; CHECK-NEXT: - Name: call_direct_ptr
; CHECK-NEXT: Kind: FUNCTION
; CHECK-NEXT: Index: 5
-; CHECK-NEXT: - Name: alias_fn
-; CHECK-NEXT: Kind: FUNCTION
-; CHECK-NEXT: Index: 1
; CHECK-NEXT: - Name: __heap_base
; CHECK-NEXT: Kind: GLOBAL
; CHECK-NEXT: Index: 1
; RELOC-NEXT: - Type: CODE
; RELOC-NEXT: Relocations:
; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; RELOC-NEXT: Index: 7
+; RELOC-NEXT: Index: 4
; RELOC-NEXT: Offset: 0x00000004
; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; RELOC-NEXT: Index: 2
+; RELOC-NEXT: Index: 1
; RELOC-NEXT: Offset: 0x00000013
; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; RELOC-NEXT: Index: 7
+; RELOC-NEXT: Index: 4
; RELOC-NEXT: Offset: 0x0000001C
; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
-; RELOC-NEXT: Index: 1
+; RELOC-NEXT: Index: 6
; RELOC-NEXT: Offset: 0x00000027
; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
-; RELOC-NEXT: Index: 1
+; RELOC-NEXT: Index: 6
; RELOC-NEXT: Offset: 0x00000032
; RELOC-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_SLEB
-; RELOC-NEXT: Index: 7
+; RELOC-NEXT: Index: 4
; RELOC-NEXT: Offset: 0x0000003A
; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; RELOC-NEXT: Index: 7
+; RELOC-NEXT: Index: 4
; RELOC-NEXT: Offset: 0x00000043
; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
-; RELOC-NEXT: Index: 1
+; RELOC-NEXT: Index: 6
; RELOC-NEXT: Offset: 0x00000050
; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
-; RELOC-NEXT: Index: 1
+; RELOC-NEXT: Index: 6
; RELOC-NEXT: Offset: 0x0000005D
; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
-; RELOC-NEXT: Index: 1
+; RELOC-NEXT: Index: 6
; RELOC-NEXT: Offset: 0x00000068
; RELOC-NEXT: - Type: R_WEBASSEMBLY_TABLE_INDEX_SLEB
-; RELOC-NEXT: Index: 2
+; RELOC-NEXT: Index: 1
; RELOC-NEXT: Offset: 0x00000070
; RELOC-NEXT: - Type: R_WEBASSEMBLY_FUNCTION_INDEX_LEB
-; RELOC-NEXT: Index: 2
+; RELOC-NEXT: Index: 1
; RELOC-NEXT: Offset: 0x00000079
; RELOC-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
-; RELOC-NEXT: Index: 1
+; RELOC-NEXT: Index: 6
; RELOC-NEXT: Offset: 0x00000086
; RELOC-NEXT: Functions:
; RELOC-NEXT: - Index: 0
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 0
; RELOC-NEXT: - Index: 1
-; RELOC-NEXT: Kind: GLOBAL
-; RELOC-NEXT: Name: __stack_pointer
-; RELOC-NEXT: Flags: [ UNDEFINED ]
-; RELOC-NEXT: Global: 0
-; RELOC-NEXT: - Index: 2
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: direct_fn
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 1
-; RELOC-NEXT: - Index: 3
+; RELOC-NEXT: - Index: 2
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: call_direct
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 2
-; RELOC-NEXT: - Index: 4
+; RELOC-NEXT: - Index: 3
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: call_alias
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 3
+; RELOC-NEXT: - Index: 4
+; RELOC-NEXT: Kind: FUNCTION
+; RELOC-NEXT: Name: alias_fn
+; RELOC-NEXT: Flags: [ BINDING_WEAK ]
+; RELOC-NEXT: Function: 1
; RELOC-NEXT: - Index: 5
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: call_alias_ptr
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 4
; RELOC-NEXT: - Index: 6
+; RELOC-NEXT: Kind: GLOBAL
+; RELOC-NEXT: Name: __stack_pointer
+; RELOC-NEXT: Flags: [ UNDEFINED ]
+; RELOC-NEXT: Global: 0
+; RELOC-NEXT: - Index: 7
; RELOC-NEXT: Kind: FUNCTION
; RELOC-NEXT: Name: call_direct_ptr
; RELOC-NEXT: Flags: [ ]
; RELOC-NEXT: Function: 5
-; RELOC-NEXT: - Index: 7
-; RELOC-NEXT: Kind: FUNCTION
-; RELOC-NEXT: Name: alias_fn
-; RELOC-NEXT: Flags: [ BINDING_WEAK ]
-; RELOC-NEXT: Function: 1
; RELOC-NEXT: - Type: CUSTOM
; RELOC-NEXT: Name: name
; RELOC-NEXT: FunctionNames: