| ;; 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 -all --print | filecheck %s |
| |
| ;; CHECK: (module |
| ;; CHECK-NEXT: (type $0 (func)) |
| ;; CHECK-NEXT: (elem declare func $0) |
| ;; CHECK-NEXT: (func $0 (type $0) |
| ;; CHECK-NEXT: (block $label$1 |
| ;; CHECK-NEXT: (drop |
| ;; CHECK-NEXT: (ref.func $0) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: ) |
| ;; CHECK-NEXT: ) |