[clang] [llvm] [WebAssembly] Add support for nonnull_extern_ref type (PR #148935)

Paulo Matos via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 21 01:37:00 PDT 2025


================
@@ -43,16 +72,38 @@ union u {
   __externref_t (*f7)[0]; // expected-error {{cannot form a pointer to a WebAssembly table}}
 };
 
+
+union nn_u {
+  __externref_t nn_f1;       // expected-error {{field has sizeless type '__externref_t'}}
+  __externref_t nn_f2[0];    // expected-error {{field has sizeless type '__externref_t'}}
+  __externref_t nn_f3[];     // expected-error {{field has sizeless type '__externref_t'}}
+  __externref_t nn_f4[0][0]; // expected-error {{multi-dimensional arrays of WebAssembly references are not allowed}}
+  __externref_t *nn_f5;      // expected-error {{pointer to WebAssembly reference type is not allowed}}
+  __externref_t ****nn_f6;   // expected-error {{pointer to WebAssembly reference type is not allowed}}
+  __externref_t (*f7)[0]; // expected-error {{cannot form a pointer to a WebAssembly table}}
----------------
pmatos wrote:

Should the types in this union be `__non_null_externref_t`?

https://github.com/llvm/llvm-project/pull/148935


More information about the llvm-commits mailing list