File indexing completed on 2026-05-10 08:37:05
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef LLVM_CLANG_SEMA_SEMAWASM_H
0014 #define LLVM_CLANG_SEMA_SEMAWASM_H
0015
0016 #include "clang/AST/ASTFwd.h"
0017 #include "clang/Sema/SemaBase.h"
0018
0019 namespace clang {
0020 class ParsedAttr;
0021 class TargetInfo;
0022
0023 class SemaWasm : public SemaBase {
0024 public:
0025 SemaWasm(Sema &S);
0026
0027 bool CheckWebAssemblyBuiltinFunctionCall(const TargetInfo &TI,
0028 unsigned BuiltinID,
0029 CallExpr *TheCall);
0030
0031 bool BuiltinWasmRefNullExtern(CallExpr *TheCall);
0032 bool BuiltinWasmRefNullFunc(CallExpr *TheCall);
0033 bool BuiltinWasmTableGet(CallExpr *TheCall);
0034 bool BuiltinWasmTableSet(CallExpr *TheCall);
0035 bool BuiltinWasmTableSize(CallExpr *TheCall);
0036 bool BuiltinWasmTableGrow(CallExpr *TheCall);
0037 bool BuiltinWasmTableFill(CallExpr *TheCall);
0038 bool BuiltinWasmTableCopy(CallExpr *TheCall);
0039
0040 WebAssemblyImportNameAttr *
0041 mergeImportNameAttr(Decl *D, const WebAssemblyImportNameAttr &AL);
0042 WebAssemblyImportModuleAttr *
0043 mergeImportModuleAttr(Decl *D, const WebAssemblyImportModuleAttr &AL);
0044
0045 void handleWebAssemblyExportNameAttr(Decl *D, const ParsedAttr &AL);
0046 void handleWebAssemblyImportModuleAttr(Decl *D, const ParsedAttr &AL);
0047 void handleWebAssemblyImportNameAttr(Decl *D, const ParsedAttr &AL);
0048 };
0049 }
0050
0051 #endif