# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o
# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %S/Inputs/undefined-globals.s -o %t_globals.o
# RUN: wasm-ld --allow-undefined -o %t1.wasm %t.o %t_globals.o

.functype unused_undef_function (i64) -> (i64)
.functype used_undef_function () -> (i32)
.functype use_undef_global () -> (i64)

foo:
  .functype foo () -> ()
  call unused_undef_function
  end_function

.globl _start

_start:
  .functype _start () -> ()
  call used_undef_function
  call use_undef_global
  end_function

# RUN: obj2yaml %t1.wasm | FileCheck %s

# CHECK:        - Type:            IMPORT
# CHECK-NEXT:     Imports:
# CHECK-NEXT:       - Module:          env
# CHECK-NEXT:         Field:           used_undef_function
# CHECK-NEXT:         Kind:            FUNCTION
# CHECK-NEXT:         SigIndex:        0
# CHECK-NEXT:       - Module:          env
# CHECK-NEXT:         Field:           used_undef_global
# CHECK-NEXT:         Kind:            GLOBAL
# CHECK-NEXT:         GlobalType:      I64
# CHECK-NEXT:         GlobalMutable:   false
# CHECK-NEXT:   - Type:
# CHECK:        - Type:            CUSTOM
# CHECK-NEXT:     Name:            name
# CHECK-NEXT:     FunctionNames:
# CHECK-NEXT:       - Index:           0
# CHECK-NEXT:         Name:            used_undef_function
# CHECK-NEXT:       - Index:           1
# CHECK-NEXT:         Name:            _start
# CHECK-NEXT:       - Index:           2
# CHECK-NEXT:         Name:            use_undef_global
# CHECK-NEXT:     GlobalNames:
# CHECK-NEXT:       - Index:           0
# CHECK-NEXT:         Name:            used_undef_global
# CHECK-NEXT:       - Index:           1
# CHECK-NEXT:         Name:            __stack_pointer
# CHECK-NEXT: ...

# RUN: wasm-ld --no-gc-sections --allow-undefined \
# RUN:     -o %t1.no-gc.wasm %t.o %t_globals.o
# RUN: obj2yaml %t1.no-gc.wasm | FileCheck %s -check-prefix=NO-GC

# NO-GC:        - Type:            IMPORT
# NO-GC-NEXT:     Imports:
# NO-GC-NEXT:       - Module:          env
# NO-GC-NEXT:         Field:           unused_undef_function
# NO-GC-NEXT:         Kind:            FUNCTION
# NO-GC-NEXT:         SigIndex:        0
# NO-GC-NEXT:       - Module:          env
# NO-GC-NEXT:         Field:           used_undef_function
# NO-GC-NEXT:         Kind:            FUNCTION
# NO-GC-NEXT:         SigIndex:        1
# NO-GC-NEXT:       - Module:          env
# NO-GC-NEXT:         Field:           unused_undef_global
# NO-GC-NEXT:         Kind:            GLOBAL
# NO-GC-NEXT:         GlobalType:      I64
# NO-GC-NEXT:         GlobalMutable:   false
# NO-GC-NEXT:       - Module:          env
# NO-GC-NEXT:         Field:           used_undef_global
# NO-GC-NEXT:         Kind:            GLOBAL
# NO-GC-NEXT:         GlobalType:      I64
# NO-GC-NEXT:         GlobalMutable:   false
# NO-GC-NEXT:   - Type:
# NO-GC:        - Type:            CUSTOM
# NO-GC-NEXT:     Name:            name
# NO-GC-NEXT:     FunctionNames:
# NO-GC-NEXT:       - Index:           0
# NO-GC-NEXT:         Name:            unused_undef_function
# NO-GC-NEXT:       - Index:           1
# NO-GC-NEXT:         Name:            used_undef_function
# NO-GC-NEXT:       - Index:           2
# NO-GC-NEXT:         Name:            __wasm_call_ctors
# NO-GC-NEXT:       - Index:           3
# NO-GC-NEXT:         Name:            foo
# NO-GC-NEXT:       - Index:           4
# NO-GC-NEXT:         Name:            _start
# NO-GC-NEXT:       - Index:           5
# NO-GC-NEXT:         Name:            use_undef_global
# NO-GC-NEXT:     GlobalNames:
# NO-GC-NEXT:       - Index:           0
# NO-GC-NEXT:         Name:            unused_undef_global
# NO-GC-NEXT:       - Index:           1
# NO-GC-NEXT:         Name:            used_undef_global
# NO-GC-NEXT:       - Index:           2
# NO-GC-NEXT:         Name:            __stack_pointer
# NO-GC-NEXT: ...
