Input.cpp revision 37b74a387bb3993387029859c2d9d051c41c724e
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
11#include "mcld/MC/Attribute.h"
12#include "mcld/LD/LDContext.h"
13
14namespace mcld {
15
16//===----------------------------------------------------------------------===//
17// mcld::Input
18//===----------------------------------------------------------------------===//
19Input::Input(llvm::StringRef pName)
20    : m_Type(Unknown),
21      m_Name(pName.data()),
22      m_Path(),
23      m_pAttr(NULL),
24      m_bNeeded(false),
25      m_bNoExport(false),
26      m_fileOffset(0),
27      m_pMemArea(NULL),
28      m_pContext(NULL) {
29}
30
31Input::Input(llvm::StringRef pName, const AttributeProxy& pProxy)
32    : m_Type(Unknown),
33      m_Name(pName.data()),
34      m_Path(),
35      m_pAttr(const_cast<Attribute*>(pProxy.attr())),
36      m_bNeeded(false),
37      m_bNoExport(false),
38      m_fileOffset(0),
39      m_pMemArea(NULL),
40      m_pContext(NULL) {
41}
42
43Input::Input(llvm::StringRef pName,
44             const sys::fs::Path& pPath,
45             unsigned int pType,
46             off_t pFileOffset)
47    : m_Type(pType),
48      m_Name(pName.data()),
49      m_Path(pPath),
50      m_pAttr(NULL),
51      m_bNeeded(false),
52      m_bNoExport(false),
53      m_fileOffset(pFileOffset),
54      m_pMemArea(NULL),
55      m_pContext(NULL) {
56}
57
58Input::Input(llvm::StringRef pName,
59             const sys::fs::Path& pPath,
60             const AttributeProxy& pProxy,
61             unsigned int pType,
62             off_t pFileOffset)
63    : m_Type(pType),
64      m_Name(pName.data()),
65      m_Path(pPath),
66      m_pAttr(const_cast<Attribute*>(pProxy.attr())),
67      m_bNeeded(false),
68      m_bNoExport(false),
69      m_fileOffset(pFileOffset),
70      m_pMemArea(NULL),
71      m_pContext(NULL) {
72}
73
74Input::~Input() {
75  // Attribute is deleted by AttributeFactory
76  // MemoryArea is deleted by MemoryAreaFactory
77}
78
79}  // namespace mcld
80