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