1//===- SystemUtils.h - Utilities to do low-level system stuff ---*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file contains functions used to do a variety of low-level, often 11// system-specific, tasks. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef LLVM_SUPPORT_SYSTEMUTILS_H 16#define LLVM_SUPPORT_SYSTEMUTILS_H 17 18#include <string> 19 20namespace llvm { 21 class raw_ostream; 22 namespace sys { class Path; } 23 24/// Determine if the raw_ostream provided is connected to a terminal. If so, 25/// generate a warning message to errs() advising against display of bitcode 26/// and return true. Otherwise just return false. 27/// @brief Check for output written to a console 28bool CheckBitcodeOutputToConsole( 29 raw_ostream &stream_to_check, ///< The stream to be checked 30 bool print_warning = true ///< Control whether warnings are printed 31); 32 33/// PrependMainExecutablePath - Prepend the path to the program being executed 34/// to \p ExeName, given the value of argv[0] and the address of main() 35/// itself. This allows us to find another LLVM tool if it is built in the same 36/// directory. An empty string is returned on error; note that this function 37/// just mainpulates the path and doesn't check for executability. 38/// @brief Find a named executable. 39sys::Path PrependMainExecutablePath(const std::string &ExeName, 40 const char *Argv0, void *MainAddr); 41 42} // End llvm namespace 43 44#endif 45