Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:37:05

0001 //===----- SemaWasm.h ------ Wasm target-specific routines ----*- C++ -*---===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 /// \file
0009 /// This file declares semantic analysis functions specific to Wasm.
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 } // namespace clang
0050 
0051 #endif // LLVM_CLANG_SEMA_SEMAWASM_H