From 76858a7abd4faeb462e04f177666b87b23b65287 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 14 Jun 2013 20:26:58 +0000 Subject: [PATCH] Replace use of PathV1.h in MCContext.cpp. GetCurrentDirectory is now unused. Remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184003 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCContext.h | 5 +++-- include/llvm/Support/PathV1.h | 5 ----- lib/MC/MCContext.cpp | 6 ++++-- lib/Support/Unix/Path.inc | 11 ----------- lib/Support/Windows/Path.inc | 10 ---------- 5 files changed, 7 insertions(+), 30 deletions(-) diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 0db3dee2ff0..9874ed203fb 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -11,6 +11,7 @@ #define LLVM_MC_MCCONTEXT_H #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringMap.h" #include "llvm/MC/MCDwarf.h" @@ -97,7 +98,7 @@ namespace llvm { bool SecureLogUsed; /// The compilation directory to use for DW_AT_comp_dir. - std::string CompilationDir; + SmallString<128> CompilationDir; /// The main file name if passed in explicitly. std::string MainFileName; @@ -272,7 +273,7 @@ namespace llvm { /// This can be overridden by clients which want to control the reported /// compilation directory and have it be something other than the current /// working directory. - const std::string &getCompilationDir() const { return CompilationDir; } + StringRef getCompilationDir() const { return CompilationDir; } /// \brief Set the compilation directory for DW_AT_comp_dir /// Override the default (CWD) compilation directory. diff --git a/include/llvm/Support/PathV1.h b/include/llvm/Support/PathV1.h index eaf25508696..d3f82bb567e 100644 --- a/include/llvm/Support/PathV1.h +++ b/include/llvm/Support/PathV1.h @@ -102,11 +102,6 @@ namespace sys { /// directory. static Path GetTemporaryDirectory(std::string* ErrMsg = 0); - /// Construct a path to the current directory for the current process. - /// @returns The current working directory. - /// @brief Returns the current working directory. - static Path GetCurrentDirectory(); - /// Return the suffix commonly used on file names that contain an /// executable. /// @returns The executable file suffix for the current platform. diff --git a/lib/MC/MCContext.cpp b/lib/MC/MCContext.cpp index b56017db935..b9977864a87 100644 --- a/lib/MC/MCContext.cpp +++ b/lib/MC/MCContext.cpp @@ -21,8 +21,8 @@ #include "llvm/MC/MCSymbol.h" #include "llvm/Support/ELF.h" #include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/MemoryBuffer.h" -#include "llvm/Support/PathV1.h" #include "llvm/Support/Signals.h" #include "llvm/Support/SourceMgr.h" using namespace llvm; @@ -38,11 +38,13 @@ MCContext::MCContext(const MCAsmInfo &mai, const MCRegisterInfo &mri, SrcMgr(mgr), MAI(mai), MRI(mri), MOFI(mofi), Allocator(), Symbols(Allocator), UsedNames(Allocator), NextUniqueID(0), - CompilationDir(llvm::sys::Path::GetCurrentDirectory().str()), CurrentDwarfLoc(0,0,0,DWARF2_FLAG_IS_STMT,0,0), DwarfLocSeen(false), GenDwarfForAssembly(false), GenDwarfFileNumber(0), AllowTemporaryLabels(true), DwarfCompileUnitID(0), AutoReset(DoAutoReset) { + error_code EC = llvm::sys::fs::current_path(CompilationDir); + assert(!EC && "Could not determine the current directory"); + MachOUniquingMap = 0; ELFUniquingMap = 0; COFFUniquingMap = 0; diff --git a/lib/Support/Unix/Path.inc b/lib/Support/Unix/Path.inc index 57f02be1094..06b18bec8b6 100644 --- a/lib/Support/Unix/Path.inc +++ b/lib/Support/Unix/Path.inc @@ -185,17 +185,6 @@ Path::GetTemporaryDirectory(std::string *ErrMsg) { #endif } -Path -Path::GetCurrentDirectory() { - char pathname[MAXPATHLEN]; - if (!getcwd(pathname, MAXPATHLEN)) { - assert(false && "Could not query current working directory."); - return Path(); - } - - return Path(pathname); -} - #if defined(__FreeBSD__) || defined (__NetBSD__) || defined(__Bitrig__) || \ defined(__OpenBSD__) || defined(__minix) || defined(__FreeBSD_kernel__) || \ defined(__linux__) || defined(__CYGWIN__) diff --git a/lib/Support/Windows/Path.inc b/lib/Support/Windows/Path.inc index 4a6e56350b4..bb1f77ab23c 100644 --- a/lib/Support/Windows/Path.inc +++ b/lib/Support/Windows/Path.inc @@ -20,9 +20,6 @@ #include #include -// We need to undo a macro defined in Windows.h, otherwise we won't compile: -#undef GetCurrentDirectory - // Windows happily accepts either forward or backward slashes, though any path // returned by a Win32 API will have backward slashes. As LLVM code basically // assumes forward slashes are used, backward slashs are converted where they @@ -199,13 +196,6 @@ Path::GetTemporaryDirectory(std::string* ErrMsg) { return *TempDirectory; } -Path -Path::GetCurrentDirectory() { - char pathname[MAX_PATH]; - ::GetCurrentDirectoryA(MAX_PATH,pathname); - return Path(pathname); -} - /// GetMainExecutable - Return the path to the main executable, given the /// value of argv[0] from program startup. Path Path::GetMainExecutable(const char *argv0, void *MainAddr) {