| ;; Test that exact references in public types are disallowed without custom descriptors |
| |
| ;; RUN: not wasm-opt %s -all --disable-custom-descriptors 2>&1 | filecheck %s |
| ;; RUN: wasm-opt %s -all -S -o - | filecheck %s --check-prefix=NOERR |
| |
| ;; CHECK: [wasm-validator error in module] Exact reference in public type not allowed without custom descriptors [--enable-custom-descriptors], on |
| ;; CHECK-NEXT: $struct |
| ;; CHECK-NEXT: [wasm-validator error in module] Exact reference in public type not allowed without custom descriptors [--enable-custom-descriptors], on |
| ;; CHECK-NEXT: $array |
| ;; CHECK-NEXT: [wasm-validator error in module] Exact reference in public type not allowed without custom descriptors [--enable-custom-descriptors], on |
| ;; CHECK-NEXT: $func |
| |
| ;; NOERR: (module |
| |
| (module |
| (type $struct (struct (field (ref null (exact $struct))))) |
| (type $array (array (field (ref (exact $struct))))) |
| (type $func (func (param (ref null (exact $struct))) (result (ref (exact $array))))) |
| |
| (import "" "struct" (global $struct (ref $struct))) |
| (import "" "array" (global $array (ref $array))) |
| (import "" "func" (global $func (ref $func))) |
| ) |