Home | History | Annotate | Download | only in MC
      1 //===- Input.cpp ----------------------------------------------------------===//
      2 //
      3 //                     The MCLinker Project
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 #include <mcld/MC/Input.h>
     10 #include <mcld/MC/Attribute.h>
     11 #include <mcld/LD/LDContext.h>
     12 
     13 using namespace mcld;
     14 
     15 //===----------------------------------------------------------------------===//
     16 // mcld::Input
     17 //===----------------------------------------------------------------------===//
     18 Input::Input(llvm::StringRef pName)
     19   : m_Type(Unknown),
     20     m_Name(pName.data()),
     21     m_Path(),
     22     m_pAttr(NULL),
     23     m_bNeeded(false),
     24     m_bNoExport(false),
     25     m_fileOffset(0),
     26     m_pMemArea(NULL),
     27     m_pContext(NULL) {
     28 }
     29 
     30 Input::Input(llvm::StringRef pName, const AttributeProxy& pProxy)
     31   : m_Type(Unknown),
     32     m_Name(pName.data()),
     33     m_Path(),
     34     m_pAttr(const_cast<Attribute*>(pProxy.attr())),
     35     m_bNeeded(false),
     36     m_bNoExport(false),
     37     m_fileOffset(0),
     38     m_pMemArea(NULL),
     39     m_pContext(NULL) {
     40 }
     41 
     42 Input::Input(llvm::StringRef pName,
     43         const sys::fs::Path& pPath,
     44         unsigned int pType,
     45         off_t pFileOffset)
     46   : m_Type(pType),
     47     m_Name(pName.data()),
     48     m_Path(pPath),
     49     m_pAttr(NULL),
     50     m_bNeeded(false),
     51     m_bNoExport(false),
     52     m_fileOffset(pFileOffset),
     53     m_pMemArea(NULL),
     54     m_pContext(NULL) {
     55 }
     56 
     57 Input::Input(llvm::StringRef pName,
     58         const sys::fs::Path& pPath,
     59         const AttributeProxy& pProxy,
     60         unsigned int pType,
     61         off_t pFileOffset)
     62   : m_Type(pType),
     63     m_Name(pName.data()),
     64     m_Path(pPath),
     65     m_pAttr(const_cast<Attribute*>(pProxy.attr())),
     66     m_bNeeded(false),
     67     m_bNoExport(false),
     68     m_fileOffset(pFileOffset),
     69     m_pMemArea(NULL),
     70     m_pContext(NULL) {
     71 }
     72 
     73 Input::~Input()
     74 {
     75   // Attribute is deleted by AttributeFactory
     76   // MemoryArea is deleted by MemoryAreaFactory
     77 }
     78 
     79