| ;; Verify a binary with declarative element segment whose init is vector of expr | |
| ;; can be parsed correctly. | |
| ;; The declarative-element-use-expr file contains this: | |
| ;; | |
| ;; (module | |
| ;; (type $0 (func)) | |
| ;; (func $0 (type 0) (block (ref.func 0) (drop))) | |
| ;; (elem $0 declare funcref (item ref.func 0)) | |
| ;; ) | |
| ;; | |
| ;; The wasm-opt output contains `(elem declare func 0)` instead of | |
| ;; `(elem declare funcref (item ref.func 0))` because the parser doesn't | |
| ;; preserve declarative segments. This is fine, as we test that the | |
| ;; binary parser can parse it correctly. | |
| ;; RUN: wasm-opt -all %s.wasm -S -o - | filecheck %s | |
| ;; CHECK: (module | |
| ;; CHECK-NEXT: (type $0 (func)) | |
| ;; CHECK-NEXT: (elem declare func $0) | |
| ;; CHECK-NEXT: (func $0 (type $0) | |
| ;; CHECK-NEXT: (drop | |
| ;; CHECK-NEXT: (ref.func $0) | |
| ;; CHECK-NEXT: ) | |
| ;; CHECK-NEXT: ) | |
| ;; CHECK-NEXT: ) |