xref: /llvm-project/lld/test/wasm/duplicate-global-imports.s (revision 1d445a6e7679cc188fd051f7397b7d9ca8ce4f10)
1# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o
2# RUN: wasm-ld --no-check-features -o %t1.wasm %t.o
3# RUN: obj2yaml %t1.wasm | FileCheck %s
4
5.global g1
6.import_module g1, env
7.import_name g1, g
8.globaltype g1, i64, immutable
9
10# Same import module/name/type as `g1`, should be de-duped.
11.global g2
12.import_module g2, env
13.import_name g2, g
14.globaltype g2, i64, immutable
15
16# Imported as an i32 instead of i64, so should not be de-duped.
17.global g3
18.import_module g3, env
19.import_name g3, g
20.globaltype g3, i32, immutable
21
22# Imported as mutable instead of immutable, so should not be de-duped.
23.global g4
24.import_module g4, env
25.import_name g4, g
26.globaltype g4, i64
27
28.globl _start
29_start:
30  .functype _start () -> ()
31  global.get g1
32  drop
33  global.get g2
34  drop
35  global.get g3
36  drop
37  global.get g4
38  drop
39  end_function
40
41
42# CHECK:        - Type:            IMPORT
43# CHECK-NEXT:     Imports:
44# CHECK-NEXT:      - Module:          env
45# CHECK-NEXT:        Field:           g
46# CHECK-NEXT:        Kind:            GLOBAL
47# CHECK-NEXT:        GlobalType:      I64
48# CHECK-NEXT:        GlobalMutable:   false
49# CHECK-NEXT:      - Module:          env
50# CHECK-NEXT:        Field:           g
51# CHECK-NEXT:        Kind:            GLOBAL
52# CHECK-NEXT:        GlobalType:      I32
53# CHECK-NEXT:        GlobalMutable:   false
54# CHECK-NEXT:      - Module:          env
55# CHECK-NEXT:        Field:           g
56# CHECK-NEXT:        Kind:            GLOBAL
57# CHECK-NEXT:        GlobalType:      I64
58# CHECK-NEXT:        GlobalMutable:   true
59# CHECK-NEXT:  - Type:
60
61# CHECK:         GlobalNames:
62# CHECK-NEXT:      - Index:           0
63# CHECK-NEXT:        Name:            g1
64# CHECK-NEXT:      - Index:           1
65# CHECK-NEXT:        Name:            g3
66# CHECK-NEXT:      - Index:           2
67# CHECK-NEXT:        Name:            g4
68# CHECK-NEXT:      - Index:           3
69# CHECK-NEXT:        Name:            __stack_pointer
70