[clang] [llvm] [WebAssembly] Add support for nonnull_extern_ref type (PR #148935)
    via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Jul 15 12:33:01 PDT 2025
    
    
  
badumbatish wrote:
one of the blockers is i'm actually not sure how to add the checks to ensure that the nonnull extern refs always stay non-null.
--- 
The check on IsNullExtern should always return fail for non_null_extern
```
bool SemaWasm::BuiltinWasmRefIsNullExtern(CallExpr *TheCall) {
  if (SemaRef.checkArgCount(TheCall, 1)) {
    return true;
  }
  Expr *ArgExpr = TheCall->getArg(0);
  if (!ArgExpr->getType().isWebAssemblyExternrefType()) {
    SemaRef.Diag(ArgExpr->getBeginLoc(),
                 diag::err_wasm_builtin_arg_must_be_externref_type)
        << 1 << ArgExpr->getSourceRange();
    return true;
  }
  return false;
}
```
https://github.com/llvm/llvm-project/pull/148935
    
    
More information about the llvm-commits
mailing list