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//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/MC/Input.h" 105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/MC/Attribute.h" 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/LDContext.h" 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcld { 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 1622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 1722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao// mcld::Input 1822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao//===----------------------------------------------------------------------===// 1922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoInput::Input(llvm::StringRef pName) 2037b74a387bb3993387029859c2d9d051c41c724eStephen Hines : m_Type(Unknown), 2137b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Name(pName.data()), 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Path(), 2337b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pAttr(NULL), 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNeeded(false), 2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNoExport(false), 2637b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_fileOffset(0), 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pMemArea(NULL), 2837b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pContext(NULL) { 2922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInput::Input(llvm::StringRef pName, const AttributeProxy& pProxy) 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines : m_Type(Unknown), 3337b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Name(pName.data()), 3437b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Path(), 3537b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pAttr(const_cast<Attribute*>(pProxy.attr())), 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNeeded(false), 3737b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNoExport(false), 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_fileOffset(0), 3937b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pMemArea(NULL), 4037b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pContext(NULL) { 4122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao} 4222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao 4322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei LiaoInput::Input(llvm::StringRef pName, 4437b74a387bb3993387029859c2d9d051c41c724eStephen Hines const sys::fs::Path& pPath, 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned int pType, 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hines off_t pFileOffset) 4737b74a387bb3993387029859c2d9d051c41c724eStephen Hines : m_Type(pType), 4837b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Name(pName.data()), 4937b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Path(pPath), 5037b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pAttr(NULL), 5137b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNeeded(false), 5237b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNoExport(false), 5337b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_fileOffset(pFileOffset), 5437b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pMemArea(NULL), 5537b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pContext(NULL) { 565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoInput::Input(llvm::StringRef pName, 5937b74a387bb3993387029859c2d9d051c41c724eStephen Hines const sys::fs::Path& pPath, 6037b74a387bb3993387029859c2d9d051c41c724eStephen Hines const AttributeProxy& pProxy, 6137b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned int pType, 6237b74a387bb3993387029859c2d9d051c41c724eStephen Hines off_t pFileOffset) 6337b74a387bb3993387029859c2d9d051c41c724eStephen Hines : m_Type(pType), 6437b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Name(pName.data()), 6537b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_Path(pPath), 6637b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pAttr(const_cast<Attribute*>(pProxy.attr())), 6737b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNeeded(false), 6837b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_bNoExport(false), 6937b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_fileOffset(pFileOffset), 7037b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pMemArea(NULL), 7137b74a387bb3993387029859c2d9d051c41c724eStephen Hines m_pContext(NULL) { 725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 7437b74a387bb3993387029859c2d9d051c41c724eStephen HinesInput::~Input() { 7522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // Attribute is deleted by AttributeFactory 7622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao // MemoryArea is deleted by MemoryAreaFactory 775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 785460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 7937b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 80