Input.cpp revision 0dea6bc96bb52346737966839ac68644f7939f58
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 13using namespace mcld; 14 15//===----------------------------------------------------------------------===// 16// mcld::Input 17//===----------------------------------------------------------------------===// 18Input::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 30Input::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 42Input::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 57Input::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 73Input::~Input() 74{ 75 // Attribute is deleted by AttributeFactory 76 // MemoryArea is deleted by MemoryAreaFactory 77} 78 79