mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 06:00:28 +00:00
11e6672693
The last user of this code vanished with r223368, but this function still was around being executed on every process start, allocating some memory and then never being used again. No functional change. Also avoids occasional complaints about the benign leak in this function, like PR23037. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233371 91177308-0d34-0410-b5e6-96231b3b80d8
82 lines
2.3 KiB
C++
82 lines
2.3 KiB
C++
//===-- Process.cpp - Implement OS Process Concept --------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file implements the operating system Process concept.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/ADT/StringExtras.h"
|
|
#include "llvm/Config/config.h"
|
|
#include "llvm/Support/FileSystem.h"
|
|
#include "llvm/Support/Path.h"
|
|
#include "llvm/Support/Process.h"
|
|
#include "llvm/Support/Program.h"
|
|
|
|
using namespace llvm;
|
|
using namespace sys;
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
//=== WARNING: Implementation here must contain only TRULY operating system
|
|
//=== independent code.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
Optional<std::string> Process::FindInEnvPath(const std::string& EnvName,
|
|
const std::string& FileName)
|
|
{
|
|
Optional<std::string> FoundPath;
|
|
Optional<std::string> OptPath = Process::GetEnv(EnvName);
|
|
if (!OptPath.hasValue())
|
|
return FoundPath;
|
|
|
|
const char EnvPathSeparatorStr[] = {EnvPathSeparator, '\0'};
|
|
SmallVector<StringRef, 8> Dirs;
|
|
SplitString(OptPath.getValue(), Dirs, EnvPathSeparatorStr);
|
|
|
|
for (const auto &Dir : Dirs) {
|
|
if (Dir.empty())
|
|
continue;
|
|
|
|
SmallString<128> FilePath(Dir);
|
|
path::append(FilePath, FileName);
|
|
if (fs::exists(Twine(FilePath))) {
|
|
FoundPath = FilePath.str();
|
|
break;
|
|
}
|
|
}
|
|
|
|
return FoundPath;
|
|
}
|
|
|
|
|
|
#define COLOR(FGBG, CODE, BOLD) "\033[0;" BOLD FGBG CODE "m"
|
|
|
|
#define ALLCOLORS(FGBG,BOLD) {\
|
|
COLOR(FGBG, "0", BOLD),\
|
|
COLOR(FGBG, "1", BOLD),\
|
|
COLOR(FGBG, "2", BOLD),\
|
|
COLOR(FGBG, "3", BOLD),\
|
|
COLOR(FGBG, "4", BOLD),\
|
|
COLOR(FGBG, "5", BOLD),\
|
|
COLOR(FGBG, "6", BOLD),\
|
|
COLOR(FGBG, "7", BOLD)\
|
|
}
|
|
|
|
static const char colorcodes[2][2][8][10] = {
|
|
{ ALLCOLORS("3",""), ALLCOLORS("3","1;") },
|
|
{ ALLCOLORS("4",""), ALLCOLORS("4","1;") }
|
|
};
|
|
|
|
// Include the platform-specific parts of this class.
|
|
#ifdef LLVM_ON_UNIX
|
|
#include "Unix/Process.inc"
|
|
#endif
|
|
#ifdef LLVM_ON_WIN32
|
|
#include "Windows/Process.inc"
|
|
#endif
|