| ;; RUN: wasm-split -all -g --multi-split %s --manifest %S/transitive-globals-multi.wast.manifest --out-prefix=%t -o %t.wasm |
| ;; RUN: wasm-dis -all %t.wasm | filecheck %s --check-prefix PRIMARY |
| ;; RUN: wasm-dis -all %t1.wasm | filecheck %s --check-prefix SECONDARY1 |
| ;; RUN: wasm-dis -all %t2.wasm | filecheck %s --check-prefix SECONDARY2 |
| |
| ;; Because global $e is used in both module1 ($split1) and module2 ($split2), $e |
| ;; will be exported / imported, but we don't need to export $f. |
| |
| (module |
| (global $f i32 (i32.const 42)) |
| (global $e i32 (global.get $f)) |
| |
| (func $keep |
| (nop) |
| ) |
| |
| (func $split1 |
| (drop (global.get $e)) |
| ) |
| |
| (func $split2 |
| (drop (global.get $e)) |
| ) |
| ) |
| |
| ;; PRIMARY: (module |
| ;; PRIMARY-NEXT: (type $0 (func)) |
| ;; PRIMARY-NEXT: (global $f i32 (i32.const 42)) |
| ;; PRIMARY-NEXT: (global $e i32 (global.get $f)) |
| ;; PRIMARY-NEXT: (export "global" (global $e)) |
| ;; PRIMARY-NEXT: (func $keep (type $0) |
| ;; PRIMARY-NEXT: (nop) |
| ;; PRIMARY-NEXT: ) |
| ;; PRIMARY-NEXT: ) |
| |
| ;; SECONDARY1: (module |
| ;; SECONDARY1-NEXT: (type $0 (func)) |
| ;; SECONDARY1-NEXT: (import "primary" "global" (global $e i32)) |
| ;; SECONDARY1-NEXT: (func $split1 (type $0) |
| ;; SECONDARY1-NEXT: (drop |
| ;; SECONDARY1-NEXT: (global.get $e) |
| ;; SECONDARY1-NEXT: ) |
| ;; SECONDARY1-NEXT: ) |
| ;; SECONDARY1-NEXT: ) |
| |
| ;; SECONDARY2: (module |
| ;; SECONDARY2-NEXT: (type $0 (func)) |
| ;; SECONDARY2-NEXT: (import "primary" "global" (global $e i32)) |
| ;; SECONDARY2-NEXT: (func $split2 (type $0) |
| ;; SECONDARY2-NEXT: (drop |
| ;; SECONDARY2-NEXT: (global.get $e) |
| ;; SECONDARY2-NEXT: ) |
| ;; SECONDARY2-NEXT: ) |
| ;; SECONDARY2-NEXT: ) |