Input.cpp revision 87f34658dec9097d987d254a990ea7f311bfc95f
187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines//===- Input.cpp ----------------------------------------------------------===// 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// The MCLinker Project 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details. 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===// 987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#include <mcld/MC/Input.h> 1022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/MC/Attribute.h> 1122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#include <mcld/LD/LDContext.h> 125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld; 145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 1522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 1622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// mcld::Input 1722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 1822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoInput::Input(llvm::StringRef pName) 1922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : m_Type(Unknown), 2022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Name(pName.data()), 2122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Path(), 2222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pAttr(NULL), 2322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_bNeeded(false), 2422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_fileOffset(0), 2522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pMemArea(NULL), 2622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pContext(NULL) { 2722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 2822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInput::Input(llvm::StringRef pName, const AttributeProxy& pProxy) 3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : m_Type(Unknown), 3122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Name(pName.data()), 3222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Path(), 3322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pAttr(const_cast<Attribute*>(pProxy.attr())), 3422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_bNeeded(false), 3522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_fileOffset(0), 3622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pMemArea(NULL), 3722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pContext(NULL) { 3822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 3922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 4022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoInput::Input(llvm::StringRef pName, 4122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao const sys::fs::Path& pPath, 4222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao unsigned int pType, 4322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao off_t pFileOffset) 4422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : m_Type(pType), 4522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Name(pName.data()), 4622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Path(pPath), 4722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pAttr(NULL), 4822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_bNeeded(false), 4922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_fileOffset(pFileOffset), 5022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pMemArea(NULL), 5122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pContext(NULL) { 525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInput::Input(llvm::StringRef pName, 555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const sys::fs::Path& pPath, 565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao const AttributeProxy& pProxy, 575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao unsigned int pType, 585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao off_t pFileOffset) 5922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao : m_Type(pType), 6022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Name(pName.data()), 6122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_Path(pPath), 625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_pAttr(const_cast<Attribute*>(pProxy.attr())), 635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_bNeeded(false), 6422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_fileOffset(pFileOffset), 6522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pMemArea(NULL), 6622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao m_pContext(NULL) { 675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInput::~Input() 705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 7122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // Attribute is deleted by AttributeFactory 7222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // MemoryArea is deleted by MemoryAreaFactory 735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 75