//===- MCLDFile.cpp -------------------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "mcld/MC/MCLDFile.h" #include "mcld/LD/LDContext.h" #include "mcld/Support/FileSystem.h" #include "mcld/Support/MemoryArea.h" #include <cstring> #include <cstdlib> using namespace mcld; //===----------------------------------------------------------------------===// // MCLDFile MCLDFile::MCLDFile() : m_Type(Unknown), m_pContext(0), m_Path(), m_Name(), m_pMemArea(0) { } MCLDFile::MCLDFile(llvm::StringRef pName) : m_Type(Unknown), m_pContext(0), m_Path(), m_Name(pName.data()), m_pMemArea(0) { } MCLDFile::MCLDFile(llvm::StringRef pName, const sys::fs::Path& pPath, unsigned int pType) : m_Type(pType), m_pContext(0), m_Path(pPath), m_Name(pName.data()), m_pMemArea(0) { } MCLDFile::~MCLDFile() { } void MCLDFile::setSOName(const std::string& pName) { size_t pos = pName.find_last_of(sys::fs::separator); if (std::string::npos == pos) m_Name = pName; else m_Name = pName.substr(pos + 1); }