LCOV - code coverage report
Current view: top level - lib/Support - ToolOutputFile.cpp (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 17 18 94.4 %
Date: 2018-06-17 00:07:59 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===--- ToolOutputFile.cpp - Implement the ToolOutputFile class --------===//
       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 implements the ToolOutputFile class.
      11             : //
      12             : //===----------------------------------------------------------------------===//
      13             : 
      14             : #include "llvm/Support/ToolOutputFile.h"
      15             : #include "llvm/Support/FileSystem.h"
      16             : #include "llvm/Support/Signals.h"
      17             : using namespace llvm;
      18             : 
      19       40083 : ToolOutputFile::CleanupInstaller::CleanupInstaller(StringRef Filename)
      20       40083 :     : Filename(Filename), Keep(false) {
      21             :   // Arrange for the file to be deleted if the process is killed.
      22             :   if (Filename != "-")
      23        4824 :     sys::RemoveFileOnSignal(Filename);
      24       40083 : }
      25             : 
      26       79640 : ToolOutputFile::CleanupInstaller::~CleanupInstaller() {
      27             :   // Delete the file if the client hasn't told us not to.
      28       41374 :   if (!Keep && Filename != "-")
      29         312 :     sys::fs::remove(Filename);
      30             : 
      31             :   // Ok, the file is successfully written and closed, or deleted. There's no
      32             :   // further need to clean it up on signals.
      33       79640 :   if (Filename != "-")
      34        4795 :     sys::DontRemoveFileOnSignal(Filename);
      35       39820 : }
      36             : 
      37       40067 : ToolOutputFile::ToolOutputFile(StringRef Filename, std::error_code &EC,
      38       40067 :                                sys::fs::OpenFlags Flags)
      39       40067 :     : Installer(Filename), OS(Filename, EC, Flags) {
      40             :   // If open fails, no cleanup is needed.
      41       40067 :   if (EC)
      42           0 :     Installer.Keep = true;
      43       40067 : }
      44             : 
      45          16 : ToolOutputFile::ToolOutputFile(StringRef Filename, int FD)
      46          16 :     : Installer(Filename), OS(FD, true) {}

Generated by: LCOV version 1.13