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