LCOV - code coverage report
Current view: top level - include/llvm/MC - MCSymbolWasm.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 0 7 0.0 %
Date: 2017-09-14 15:23:50 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- MCSymbolWasm.h -  ----------------------------------------*- C++ -*-===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : #ifndef LLVM_MC_MCSYMBOLWASM_H
      10             : #define LLVM_MC_MCSYMBOLWASM_H
      11             : 
      12             : #include "llvm/BinaryFormat/Wasm.h"
      13             : #include "llvm/MC/MCSymbol.h"
      14             : 
      15             : namespace llvm {
      16             : 
      17             : class MCSymbolWasm : public MCSymbol {
      18             : private:
      19             :   bool IsFunction = false;
      20             :   bool IsWeak = false;
      21             :   std::string ModuleName;
      22             :   SmallVector<wasm::ValType, 1> Returns;
      23             :   SmallVector<wasm::ValType, 4> Params;
      24             :   bool ParamsSet = false;
      25             :   bool ReturnsSet = false;
      26             : 
      27             :   /// An expression describing how to calculate the size of a symbol. If a
      28             :   /// symbol has no size this field will be NULL.
      29             :   const MCExpr *SymbolSize = nullptr;
      30             : 
      31             : public:
      32             :   // Use a module name of "env" for now, for compatibility with existing tools.
      33             :   // This is temporary, and may change, as the ABI is not yet stable.
      34           0 :   MCSymbolWasm(const StringMapEntry<bool> *Name, bool isTemporary)
      35           0 :       : MCSymbol(SymbolKindWasm, Name, isTemporary),
      36           0 :         ModuleName("env") {}
      37             :   static bool classof(const MCSymbol *S) { return S->isWasm(); }
      38             : 
      39             :   const MCExpr *getSize() const { return SymbolSize; }
      40           0 :   void setSize(const MCExpr *SS) { SymbolSize = SS; }
      41             : 
      42             :   bool isFunction() const { return IsFunction; }
      43           0 :   void setIsFunction(bool isFunc) { IsFunction = isFunc; }
      44             : 
      45             :   bool isWeak() const { return IsWeak; }
      46           0 :   void setWeak(bool isWeak) { IsWeak = isWeak; }
      47             : 
      48           0 :   const StringRef getModuleName() const { return ModuleName; }
      49             : 
      50             :   const SmallVector<wasm::ValType, 1> &getReturns() const {
      51             :     assert(ReturnsSet);
      52             :     return Returns;
      53             :   }
      54             : 
      55             :   void setReturns(SmallVectorImpl<wasm::ValType> &&Rets) {
      56             :     ReturnsSet = true;
      57             :     Returns = std::move(Rets);
      58             :   }
      59             : 
      60             :   const SmallVector<wasm::ValType, 4> &getParams() const {
      61             :     assert(ParamsSet);
      62             :     return Params;
      63             :   }
      64             : 
      65             :   void setParams(SmallVectorImpl<wasm::ValType> &&Pars) {
      66             :     ParamsSet = true;
      67             :     Params = std::move(Pars);
      68             :   }
      69             : };
      70             : 
      71             : }  // end namespace llvm
      72             : 
      73             : #endif // LLVM_MC_MCSYMBOLWASM_H

Generated by: LCOV version 1.13